【发布时间】:2022-01-18 13:16:26
【问题描述】:
我有一个带有绑定的表单:
<TextBox
x:Name="txtGroupName"
Height="23"
Margin="96,13,10,0"
VerticalAlignment="Top"
TabIndex="0"
Text="{Binding UserLevel.Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
TextWrapping="Wrap" />
使用 MVVM 有一个它绑定到的视图,包含以下内容:
public UserLevel UserLevel
{
get { return _userLevel; }
set { _userLevel = value; OnPropertyChanged("UserLevel"); OnPropertyChanged("SaveButtonEnabled"); }
}
public bool SaveButtonEnabled
{
get { return UserLevel.IsValid(); }
}
然而,当文本框值被更新时,即使它绑定到 UserLevel.Name,UserLevel 属性是视图永远不会设置。文本值已设置(即名称),但即使其背后的视图和类已更新属性,SaveButtonEnabled 也永远不会运行。我知道我可能会在视图调用名称中添加一个属性,然后更新 UserLevel,但这样做似乎违反直觉,肯定有更好的方法。
看来我想级联 PropertyChanged 事件。
提前致谢。
詹姆斯
【问题讨论】: