【问题标题】:binding a custom property class WPF绑定自定义属性类 WPF
【发布时间】:2011-12-14 21:28:03
【问题描述】:

我有一个名为“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");
        }
    }

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

在我的视图中,我将属性“RFPGegevens”绑定到我的网格的数据上下文

<Grid DataContext="{Binding RfpGegevens}">

如果我调试“Klant”属性字段,仍然会被填充。

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

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

我也试过了,但似乎没什么用:

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

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

【问题讨论】:

  • 你在哪里调试了get-accessor?是否确保它由 WPF 为 TextBox-Binding 调用? VS 中的输出窗口在运行时对绑定有什么说明?
  • 你设置的windows datacontext绑定正确吗?
  • 您的 ViewModel 是否实现了 INotifyPropertyChanged,我看到您正在调用 base.RaisePropertyChanged。
  • 我实现了 INotifyPropertyChanged 并且正确绑定了 windows 数据上下文。对于 Andreas,您能否重述您的问题?
  • 所以如果你把一个文本框放在网格之外它绑定是正确的吗?快速检查一下.. 使用 RFP 而你的道具被命名为 Rfp

标签: c# wpf binding


【解决方案1】:

您忘记从 INotifyPropertyChanged 添加继承

【讨论】:

    【解决方案2】:

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

    public class RFPGegevens : INotifyPropertyChanged
    

    并从属性的 set 访问器中引发 propertychanged 事件。

    【讨论】:

      【解决方案3】:

      尝试两件事

      &lt;TextBox Text="{Binding Klant, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/&gt;

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-03
        • 2018-04-09
        • 2014-11-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多