WPF - 绑定到只读属性 - 更改通知?

时间:2011-01-14 17:38:36

标签: wpf

假设我有一个具有以下结构的应用程序:

(1)ViewModelA

(2)ReportManager

(3)ViewA

所以 - 首先,让我明白一点。 ViewA绑定到ViewModelA。

现在不那么明显了。 ViewModelA将一个ReportManager的单例实例注入到它的构造函数中。 ViewModelA公开了一个名为SomeReport的公共只读属性。此属性的getter指向ReportManager的单例实例中的属性。请考虑以下示例:

    public ISomeViewModel SomeReport
    {
        get { return _reportManager.SomeReport; }
    }

在ViewA中,我有一个ContentPresenter,其content属性绑定到ViewModelA中的SomeReport属性 - 并且因为ViewModelA中的SomeReport属性是只读的,所以我将绑定设置为OneWay。

对SomeReport属性所做的任何和所有更改都是在ReportManager类中进行的 - 因此,此属性具有私有的setter。我遇到的问题是ViewA中的ContentPresenter没有注册对SomeReport属性所做的更改。

对我可能做错的任何帮助都不胜感激。

感谢。

1 个答案:

答案 0 :(得分:1)

您可以在ViewModel上实现INotifyPropertyChanged,然后通过调用NotifyPropertyChanged来指示SomeReport已更改。

http://msdn.microsoft.com/en-us/library/ms229614.aspx