绑定自定义属性类WPF

时间:2011-10-25 12:01:05

标签: c# wpf binding

我有一个名为“RFPGegevens”的自定义WPF属性类

public class RFPGegevens
{
    private string _klant;
    public String Klant
    {
        get { return _klant; }
        set { _klant = value; }
    }
 }

在我的ViewModel中,我获得了一个属性RFPGegevens

    private RFPGegevens _rfpGegevens;

    public RFPGegevens RfpGegevens
    {
        get
        {
            if (_rfpGegevens == null)
                _rfpGegevens = new RFPGegevens();
            return _rfpGegevens;
        }
        set
        {
            _rfpGegevens = value;
            base.RaisePropertyChangedEvent("RfpGegevens");
        }
    }

此属性已正确填写,如果我调试这是结果:

enter image description here

在我的视图中,我将属性“RFPGegevens”绑定到我的网格的datacontext

<Grid DataContext="{Binding RfpGegevens}">

并且如果我调试“Klant”属性字段仍然填充。

enter image description here

但是当我在View中绑定这个属性时,我的文本框仍然是空的。

<TextBox Text="{Binding Klant, Mode=TwoWay}"/>

我也尝试了这个但是没有看上去有效:

<TextBox Text="{Binding RFPGegevens.Klant, Mode=TwoWay}"/>

不知道我做错了什么。
在此先感谢;)

3 个答案:

答案 0 :(得分:1)

尝试两件事

<TextBox Text="{Binding Klant, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>

public class RFPGegevens
{
    private string _klant;
    public String Klant
    {
        get { return _klant; }
        set {
              _klant = value; 
              //Raise the property changed event here
            }
    }
 }

答案 1 :(得分:1)

您还需要为自定义类实现INotifyPropertyChanged接口,如下所示:

public class RFPGegevens : INotifyPropertyChanged

并从属性的set访问器中提升propertychanged事件。

答案 2 :(得分:0)

您忘记从INotifyPropertyChanged

添加继承