根据 MSDN doc on PropertyChanged ,如果将空字符串传递给该方法,则所有属性都会刷新。使用MvvmLight RaisePropertyChanged时有这样的事情吗?传递“”只需用“”抛出事件即可。
最佳答案
MVVM Light 似乎有一个检查功能,可以检查您传入的属性名称是否存在。在这种情况下这是没有意义的。
快速搜索显示 issue logged on the CodePlex site并标记为已关闭和已修复,并且它似乎确实在最新的代码库中已修复。您使用什么版本?
如果您无法升级,我想您可以添加自己的调用器(请注意 protected PropertyChangedHandler
访问器存在于 5.x 中,我不知道它是否存在于您的版本中)。
private void RaiseAllPropertiesChanged()
{
var handler = PropertyChangedHandler;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(string.Empty));
}
}
如果您使用的是 V3,似乎没有解决方案(PropertyChangedHandler
不存在,属性验证将引发您所看到的异常)。由于这似乎是一个已修复的已知错误,因此我建议使用更高版本。
关于c# - MvvmLight RaisePropertyChanged (""),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29677453/