从不同的属性中解雇PropertyChanged被视为不良做法?

时间:2012-09-17 14:38:00

标签: xaml

道歉,如果有类似的问题,我在搜索中看不到。 This question似乎相似但不够接近。

无论如何,正如在标题中我只是想确保我所做的不被认为是不好的做法,或者没有更好的方式,因为我现在的工作方式并不是很好对(我在数据绑定方面很陌生)。

无论如何,代码:

所以我有一些我的XAML绑定的属性,我希望XAML在属性更改时更新。问题是我更喜欢我没有直接设置的属性,而是计算它们的值的属性。这是实现这一目标的良好/合法方式吗?

    public IPolicy Policy
    {
        get { return _policy; }
        set
        {
            _policy = value;
            OnPropertyChanged("HasAdminFee");
            OnPropertyChanged("AdminFeeMessage");
        }
    }
    public bool HasAdminFee
    {
        get { return Policy != null && Policy.ChargeAdminFeesValue > 0; }
    }
    public string AdminFeeMessage
    {
        get { return HasAdminFee ? string.Format(HasAdminFeeMessage, PolicyFact.ChargeAdminFeesValue) : NoAdminFeeMessage; }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    protected void OnPropertyChanged(string propertyName)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(propertyName));
        }
    }

感谢。

1 个答案:

答案 0 :(得分:1)

你这样做是正确的。我认为这是一种有效且可接受的做法。在我正在处理的WPF应用程序上,我们使用此方法。