我想知道如何標記以下的XAML。我有一個基於ICommand
的對象的視圖模型。來自其他對象的wpf命令參數
我有一個文本框和一個按鈕的窗體。該按鈕通過Command="{Binding MyButtonInViewModel}"
連接到ICommand
對象。
我想要做的就是設置按鈕的CommandParameter
等於文本框文本中的任何內容,例如調用「搜索」,但顯然不知道如何鉤住視圖中的控件。
我想知道如何標記以下的XAML。我有一個基於ICommand
的對象的視圖模型。來自其他對象的wpf命令參數
我有一個文本框和一個按鈕的窗體。該按鈕通過Command="{Binding MyButtonInViewModel}"
連接到ICommand
對象。
我想要做的就是設置按鈕的CommandParameter
等於文本框文本中的任何內容,例如調用「搜索」,但顯然不知道如何鉤住視圖中的控件。
以下XAML應該將TextBox中的文本作爲參數傳遞給您的命令。
<TextBlock x:Name="searchBox" />
<Button Command="{Binding MyButtonInViewModel}"
CommandParameter="{Binding Text, ElementName=searchBox}"/>
您可以通過在綁定中設置ElementName
來完成此操作。 下面是一個例子:
<TextBox x:Name="textBox"/>
<Button Content="Button"
Command="{Binding ButtonCommand}"
CommandParameter="{Binding ElementName=textBox, Path=Text}"/>
如果綁定文本框本身到該按鈕的命令參數,而不僅僅是文本框的文本屬性,你可以操縱你的視圖模型的文本框,例如,明確文本屬性。
<TextBox x:Name="searchBox" />
<Button Command="{Binding MyButtonInViewModel}"
CommandParameter="{Binding ElementName=searchBox}" />
查看型號代碼
private void SearchStuff(TextBox searchBox)
{
//do stuff with searchBox.Text
searchBox.Text = "";
}
也許不是爲這個偉大的例子,你可能要保持與搜索結果一起顯示的搜索文本。更好的日誌記錄或消息應用程序,當你想要點擊按鈕時文本被「消耗」。
我很感謝你的回答,但看看答案......如果有任何提供了複選標記,這意味着它已解決。這是大約一年前,我超越了這個項目。 – DRapp 2014-02-27 17:07:49
@DRapp:在SO上的答案不僅僅針對提出問題的人,還可能對社區其他人有用。從虛擬機使用UI是否是一個好主意是另一個問題。 – nightcoder 2015-03-18 14:36:34