我在XAML文件中有一个文本框,在更改文本框中的文本时,不会调用prop setter。我能够在ProjectOfficer文本框中获取值,但无法更新它。我正在使用MVVM模式
以下是我的代码XAML
TextBox Text="{Binding Path=Officer,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
x:Name="ProjectOfficer"/>
ViewModel.cs
public Staff Officer
{
get
{
return __con.PrimaryOfficer ;
}
set
{
_con.PrimaryOfficer = value;
_con.PrimaryOfficer.Update(true);
}
}
Staff.cs
public class Staff : EntityBase
{
public Staff();
public string Address { get; }
public string Code { get; set; }
public override void Update();
}
由于
答案 0 :(得分:3)
您正在将TextBox上的string类型的属性绑定到ViewModel上的Officer类型的属性。我希望没有调用setter,因为WPF无法进行转换。
如果在visual studio中检查输出窗口,您可能会看到此属性的绑定错误。
答案 1 :(得分:2)
尝试类似:
TextBox text ="{Binding Path=Address,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
x:Name="ProjectOfficer"/>
确保TextBox的持有者链接到Staff对象。文本框无法在不告知属性显示的情况下直接绑定到对象(如上例中的地址)。