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中输入文本后,属性将正确更新。他面临的问题是,属性不会在每次击键时更新。您要回答的是关于控件的属性绑定。这已经存在了。