如何在WPF应用程序中传播我的View外部所做的更改

时间:2011-04-28 23:35:37

标签: c# .net wpf xaml binding

我有一个名为IsVisible的属性:

public new bool IsVisible
{
    get { return base.IsVisible; }
    set
    {
        base.IsVisible = value;
        this.RaisePropertyChanged ( "IsVisible" );
    }
}

因此,当true中所选项目的鼠标左键按下时,此属性设置为TreeView。它工作正常,但我也有一个CheckBox我试图绑定到同一个属性,双向。因此,每当我通过鼠标左键改变此属性时,CheckBox显示IsVisible状态,如果它是真的。所以这部分有效。

但问题是,每当我将一个实例的this属性设置为true时,所有其他图层的IsVisible属性都设置为false,但CheckBox es不显示更改。他们仍然看起来已经检查过了。

所以每当我说:

layer.IsVisible = true;

基类将所有其他层设置为false,我无法访问源代码(如上所示)。

如何让我的应用识别出这种变化?

1 个答案:

答案 0 :(得分:2)

所以你隐藏了基类的IsVisible属性,它没有实现INotifyPropertyChanged?所有复选框都绑定到您的班级(而不是基础)?

您是否可以通过迭代必要的层并对您自己的属性进行相同的更改(显然DO通知)来模仿基类的行为?