我有以下方法:安全订阅的PropertyChanged
void ViewModelPropertyChanged(object sender, PropertyChangedEventArgs e)
{
switch (e.PropertyName)
{
case "InitializeFailureMessage":
if (Vm.InitializeFailureMessage != null)
ShowInitializeFailure(Vm.InitializeFailureMessage);
break;
}
}
刚才的方法有一个bug:以前被称为InitializeFailureErrorMessage
的财产,当它被重命名,没有一个更新的这个字符串处理程序。
是否有更好,更容易出错的方式来订阅PropertyChanged
事件?发射事件时,我们现在可以使用[CallerMemberName]
。执行处理程序时是否有类似的技巧?
好的建议,谢谢。使用静态只读字符串的技巧有时可能会有用,因为表达式会带来一些性能开销。 – Oliver
@Oliver是的,这就是为什么我选择在应用程序域中最多只发生一次的“静态只读”。 :) –
@Oliver你真的会注册这么多,经常这样表达开销是如此的担忧吗? – Euphoric