我有一个简单的WM7页面TextBox.更进一步,我指定EventToCommand(a RelayCommand<string>)对此事件TextBox作出反应TextChanged.为了测试pourposes我TextBox_TextChanged在页面的代码后面做了另外的方法.命令和TextBox_TextChanged打印带有文本框内容的消息框.
初始值TextBox是"ABC".然后我按下D和:
TextBox_TextChanged打印ABCD.ABC.D缺失了.为什么命令这么快?
命令声明:
public RelayCommand<string> TextChanged {get; private set;}
Run Code Online (Sandbox Code Playgroud)
命令初始化:
TextChanged = new RelayCommand<string>((s) => MessageBox.Show(s));
Run Code Online (Sandbox Code Playgroud)
命令绑定:
<TextBox x:Name="SearchTextBox" Margin="10,0" TextWrapping="Wrap" Text="{Binding SearchString, Mode=TwoWay}" FontStyle="Italic" TextChanged="SearchTextBox_TextChanged" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="TextChanged">
<GalaSoft_MvvmLight_Command:EventToCommand Command="{Binding TextChanged, Mode=OneWay}" CommandParameter="{Binding Text, ElementName=SearchTextBox}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBox>
Run Code Online (Sandbox Code Playgroud)