C# Textbox绑定的属性值不会立即更新

C# Textbox绑定的属性值不会立即更新,c#,wpf,mvvm,C#,Wpf,Mvvm,我有一个绑定到属性ItemID的文本框,就像这样 private string _itemID; public string ItemID { get { return _itemID; } set { _itemID = value; } } 文本框的XAML如下所示: <TextBox Text="{Binding Path=ItemID, Mode=TwoWay}" Name="txtItemID" /> 问题是,ItemID的

我有一个绑定到属性
ItemID
的文本框,就像这样

private string _itemID;
public string ItemID {
    get { return _itemID; }
    set { 
        _itemID = value;
    }
}
文本框的XAML如下所示:

<TextBox Text="{Binding Path=ItemID, Mode=TwoWay}" Name="txtItemID" />

问题是,
ItemID
的值不会在我键入时立即更新,

导致禁用
添加
按钮(命令),直到按tab键使文本框失去焦点。

您需要在setter中触发OnPropertyChanged事件,否则框架无法知道您编辑了属性

以下是一些例子:


是,默认情况下,仅在失去焦点时更新属性。这是为了通过避免在每次击键时更新绑定属性来提高性能。您应该使用UpdateSourceTrigger=PropertyChanged

试试这个:

<TextBox 
    Text="{Binding Path=ItemID, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
    Name="txtItemID" />


还应该为ViewModel实现INotifyPropertyChanged接口。否则,如果在ViewModel中更改了属性,UI将无法了解它。因此,它不会被更新。可能有助于实现。

嗨,Edwin,我认为您应该实现INotifyPropertyChanged事件处理程序。这可能是它没有更新的原因。INotifyPropertyChanged在属性中设置,并通知UI它已更改。此外,在xaml中,添加
UpdateSourceTrigger=PropertyChanged
我同意你的观点@gregory.bmclubid我的答案对你有帮助吗?如果有,请将其标记为答案。谢谢。啊,是的!我道歉。已标记。他没有面临财产更新问题。在textbox中输入文本后,属性将正确更新。他面临的问题是,属性不会在每次击键时更新。您要回答的是关于控件的属性绑定。这已经存在了。