有一个静态配置类:
public class Cfg : PropertyChangedBase
{
private static string _niceString;
public static string NiceString {
get => _niceString;
set {
_niceString = value;
NotifyStaticPropertyChanged("NiceString");
}
}
public static event EventHandler<PropertyChangedEventArgs> StaticPropertyChanged;
private static void NotifyStaticPropertyChanged(string propertyName) {
StaticPropertyChanged?.Invoke(null, new PropertyChangedEventArgs(propertyName));
}
}
如果我们进行如下绑定:Content="{Binding Path=(local:Сfg.Nice)}"
一切正常。
但是,如果我在VM中设置以下属性:
public string MyBestString => Cfg.NiceString;
因此(类使用KindOfMagic实现INPC,该方法有效)并实现如下所示的绑定:`Content =“ {Binding MyBestString}”,那么将无济于事。
为什么?以及如何使其工作?
P.S。使用这样的绑定Content =" {Binding Path = (local: Сfg.Nice)} "
几乎是不可能的-我需要先处理这些值,然后才能在元素中显示它们。
答案 0 :(得分:1)
没有理由也无法为MyBestString
提供原始属性的通知更改事件。
将您的代码更改为:
public static string NiceString {
get => _niceString;
set {
_niceString = value;
NotifyStaticPropertyChanged("NiceString");
NotifyStaticPropertyChanged("MyBestString");
}
}