WPF中的TextBox绑定

时间:2009-07-23 13:42:50

标签: wpf mvvm

我在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(); 
}

由于

2 个答案:

答案 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对象。文本框无法在不告知属性显示的情况下直接绑定到对象(如上例中的地址)。