PropertyChanged事件处理程序始终为null

时间:2012-06-08 09:23:41

标签: c# wpf binding event-handling

当我首次在其构造函数中将标注分配给Label时,Label会正确绑定并根据CurrentMarket类的当前ComponentData值显示正确的信息。但是,当ComponentData更改时,OnPropertyChanged事件触发正常,但ProperyChanged处理程序始终为NULL。有人可以建议我做错了吗?

我有一个标签,我设置了这样的绑定:

    public StyledLabel(string Property, int i)
    {
        Binding BindingText = new System.Windows.Data.Binding(Property);
        BindingText.Source = Statics.CurrentMarket.ComponentData;
        BindingText.Converter = new TextConverter();
        this.SetBinding(Label.ContentProperty, BindingText);

     }

目前的市场类别如下:

public class CurrentMarket : INotifyPropertyChanged
{
    string sMarket = "";
    ComponentData cComponentData;

    public string Market
    {
        set
        {
            sMarket = value;
            OnPropertyChanged("Market");
            ComponentData = SharedBoxAdmin.Components[sMarket];
        }
        get
        {
            return sMarket;
        }
    }

    public ComponentData ComponentData
    {
        get { return cComponentData; }
        set
        {
            cComponentData = value;
            OnPropertyChanged("ComponentData");
        }
    }

    public CurrentMarket()
    {
    }

    public event PropertyChangedEventHandler PropertyChanged;

    private void OnPropertyChanged(string info)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(info));
        }
    }

 }

谢谢!

1 个答案:

答案 0 :(得分:3)

尝试将要绑定的属性名称指定为Path的{​​{1}}(而不是Binding的一部分):

Source