Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight Textbox绑定TextChanged事件_Silverlight - Fatal编程技术网

Silverlight Textbox绑定TextChanged事件

Silverlight Textbox绑定TextChanged事件,silverlight,Silverlight,我有一个简单的Silverlight文本框,通过条形码扫描仪接收文本。它基本上就像一个浆糊。无论如何,当我的文本框注意到其内容发生变化时,我希望它在我的ViewModel中运行LoadScannedResults()。默认情况下,当我执行双向绑定时,当我离开页面单击时,会触发ViewModel中的ScandDocumentNumber。如果我在codebehind中输入tbDocumentNumber\u TextChanged(),我可以获得所需的效果,但随后我按了两次ViewModel,一次

我有一个简单的Silverlight文本框,通过条形码扫描仪接收文本。它基本上就像一个浆糊。无论如何,当我的文本框注意到其内容发生变化时,我希望它在我的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}" />