Silverlight Textbox绑定TextChanged事件
我有一个简单的Silverlight文本框,通过条形码扫描仪接收文本。它基本上就像一个浆糊。无论如何,当我的文本框注意到其内容发生变化时,我希望它在我的ViewModel中运行Silverlight Textbox绑定TextChanged事件,silverlight,Silverlight,我有一个简单的Silverlight文本框,通过条形码扫描仪接收文本。它基本上就像一个浆糊。无论如何,当我的文本框注意到其内容发生变化时,我希望它在我的ViewModel中运行LoadScannedResults()。默认情况下,当我执行双向绑定时,当我离开页面单击时,会触发ViewModel中的ScandDocumentNumber。如果我在codebehind中输入tbDocumentNumber\u TextChanged(),我可以获得所需的效果,但随后我按了两次ViewModel,一次
LoadScannedResults()
。默认情况下,当我执行双向绑定时,当我离开页面单击时,会触发ViewModel中的ScandDocumentNumber
。如果我在codebehind中输入tbDocumentNumber\u TextChanged()
,我可以获得所需的效果,但随后我按了两次ViewModel,一次按TextChanged,然后在离开页面时再按一次。我希望它只发生在TextChanged上。谢谢你的帮助
这是我的家
<TextBox Name="tbDocumentNumber" Margin="3" VerticalAlignment="Center" Text="{Binding ScanDocumentNumber, Mode=TwoWay}" Width="150" />
这是我的HomeViewModel.cs
private string m_ScanDocumentNumber;
public string ScanDocumentNumber
{
get { return m_ScanDocumentNumber; }
set
{
if (m_ScanDocumentNumber == null || !m_ScanDocumentNumber.Equals(value))
{
m_ScanDocumentNumber = value.Trim();
RaisePropertyChanged("ScanDocumentNumber");
}
if (m_ScanDocumentNumber != null && m_ScanDocumentNumber != "")
{
LoadScannedResults();
}
}
}
我不确定,但UpdateSourceTrigger在这种情况下可能会有所帮助 Text属性的默认UpdateSourceTrigger值为LostFocus。这意味着,如果应用程序有一个带有数据绑定TextBox.Text属性的TextBox,则在TextBox失去焦点之前(例如,当您单击远离TextBox时),您在TextBox中键入的文本不会更新源 如果希望在键入时更新源,请将绑定的UpdateSourceTrigger设置为PropertyChanged。在以下示例中,TextBox和TextBlock的文本属性都绑定到同一个源属性。TextBox绑定的UpdateSourceTrigger属性设置为PropertyChanged
<TextBox Name="itemNameTextBox"
Text="{Binding Path=ItemName,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
我不确定,但UpdateSourceTrigger在这种情况下可能会有所帮助 Text属性的默认UpdateSourceTrigger值为LostFocus。这意味着,如果应用程序有一个带有数据绑定TextBox.Text属性的TextBox,则在TextBox失去焦点之前(例如,当您单击远离TextBox时),您在TextBox中键入的文本不会更新源 如果希望在键入时更新源,请将绑定的UpdateSourceTrigger设置为PropertyChanged。在以下示例中,TextBox和TextBlock的文本属性都绑定到同一个源属性。TextBox绑定的UpdateSourceTrigger属性设置为PropertyChanged
<TextBox Name="itemNameTextBox"
Text="{Binding Path=ItemName,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />