道歉,如果有类似的问题,我在搜索中看不到。 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));
}
}
感谢。
答案 0 :(得分:1)
你这样做是正确的。我认为这是一种有效且可接受的做法。在我正在处理的WPF应用程序上,我们使用此方法。