模型属性更改通知

时间:2012-09-08 12:29:42

标签: wpf data-binding properties model notifications

  

可能重复:
  Why does the binding update without implementing INotifyPropertyChanged?

我有WPF:

    <TextBlock Grid.Row="0" Text="{Binding SomeProperty}" />
    <TextBox Grid.Row="1" Text="{Binding SomeProperty, UpdateSourceTrigger=PropertyChanged}" />

绑定到

class MyModel1
{
    string _someProperty = string.Empty;
    public string SomeProperty
    {
        get { return _someProperty; }
        set { _someProperty = value; }
    }
}

它也适用于:

    class MyModel
        {
            public string SomeProperty { get; set; }
        }

如您所见,没有属性更改通知,但在我输入TextBox时更新了TextBlock。 我正在使用Visual C#express 2010,标准的WPF应用程序项目模板,标准控制,没有片段,没有任何额外的,使用.NET 4客户端配置文件。

  • 问题1:为什么会这样?
  • 问题2:.NET 4的新功能是什么?
  • 问题3:如何从中获取有关房产变更的通知 我的代码没有在我的模型中实现任何事件?

谢谢

1 个答案:

答案 0 :(得分:0)

1如果可行,WPF的数据绑定引擎将数据绑定到PropertyDescriptor实例,如果源对象是普通CLR对象并且未实现INotifyPropertyChanged接口,则该实例将包装source属性。

PropertyDescriptor.AddValueChanged()方法允许订阅通知。

更改未按需要同步,我们使用INotifyPropertyChanged来自定义此方面。

2你可以阅读这篇文章,它是interessant

链接:http://msdn.microsoft.com/en-us/library/bb613588.aspx