绑定到自动更新对象?

时间:2009-03-05 07:23:25

标签: c# .net wpf data-binding xaml

是否有可用于制作自动更新对象的对象或界面,并将这些更新过滤到WPF中的UI?

基本上我正在寻找这样的东西:

<TextBlock Text="{Binding Source={StaticResource myClass}, Path=DataObject}" />

public class MyClass
{
    public AutoUpdatingObject DataObject { get; set; }
}

public class AutoUpdatingObject: ???
{
    ???
}

不,我不能让MyClass实现INotifyPropertyChanged。我需要AutoUpdatingObject类才能通知WPF更改。

1 个答案:

答案 0 :(得分:1)

实现INotifyPropertyChanged不是更新绑定的唯一方法,您也可以在不实现接口的情况下使用事件。

Using a CLR Class as the Binding Source Object

  

如果你没有实施   INotifyPropertyChanged,那么你必须   安排自己的通知   系统,以确保使用的数据   在绑定中保持最新状态。您可以   提供变更通知   支持PropertyChanged模式   对于您想要更改的每个属性   通知。支持这一点   模式,你定义一个   每个PropertyNameChanged事件   属性,其中PropertyName是   该物业的名称。你提高了   每当房产发生变化时都会发生事件。

在你的情况下,MyClass看起来像这样:

public class MyClass
{
    private AutoUpdatingObject dataObject;
    public AutoUpdatingObject DataObject
    {
        get { return dataObject; }
        set { dataObject = value; DataObjectChanged(this, new EventArgs()); }
    }

    public event EventHandler DataObjectChanged = delegate { };
}