Передача текущего окна в качестве параметра CommandParameter как я могу передать окно, в котором я сейчас включен как параметр для команды? Мне нравится делать это в разметке XAML: <Button Command="CommandGetsCalled" CommandParameter="-this?-" /> Ответ 1 Я могу подумать об этом двумя способами: Дайте окну имя (через атрибут x:Name в теге Window, а затем создайте привязку как это (предполагает, что имя окна равно ' ThisWindow '): <Button Command="CommandGetsCalled" CommandParameter="{Binding ElementName=ThisWindow}" /> Для чего-то более общего (не полагаясь на то, что текущее окно является именем), привязка может быть построена следующим образом: <Button Command="CommandGetsCalled" CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}" /> Ответ 2 Вы можете попробовать привязать к RelativeSource Если вы хотите передать кнопку в качестве параметра: <Button Command="CommandGetsCalled" CommandParameter="{Binding RelativeSource={RelativeSource Self}}" /> Если вы хотите передать окно в качестве параметра: <Button Command="CommandGetsCalled" CommandParameter="{Binding RelativeSource={ RelativeSource AncestorType={x:Type Window}}}" /> Ответ 3 В моей ситуации ни один из предоставленных ответов не работал. Это сработало для меня: <window x:Name="myWindow"> <Button Command="Command" CommandParameter={x:Reference Name=myWindow}/> </window>
Ответ 1 Я могу подумать об этом двумя способами: Дайте окну имя (через атрибут x:Name в теге Window, а затем создайте привязку как это (предполагает, что имя окна равно ' ThisWindow '): <Button Command="CommandGetsCalled" CommandParameter="{Binding ElementName=ThisWindow}" /> Для чего-то более общего (не полагаясь на то, что текущее окно является именем), привязка может быть построена следующим образом: <Button Command="CommandGetsCalled" CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}" />
Ответ 2 Вы можете попробовать привязать к RelativeSource Если вы хотите передать кнопку в качестве параметра: <Button Command="CommandGetsCalled" CommandParameter="{Binding RelativeSource={RelativeSource Self}}" /> Если вы хотите передать окно в качестве параметра: <Button Command="CommandGetsCalled" CommandParameter="{Binding RelativeSource={ RelativeSource AncestorType={x:Type Window}}}" />
Ответ 3 В моей ситуации ни один из предоставленных ответов не работал. Это сработало для меня: <window x:Name="myWindow"> <Button Command="Command" CommandParameter={x:Reference Name=myWindow}/> </window>