是否保证在IValueConverter ConvertBack上调用其他视图会更新以及如何强制执行它?
我在List中有4个参数。它们中的每一对都可以通过以下方式从另外两个计算:
A = f(a,b)
B = f2(a,b)
a = f3(A,B)
b = f4(A,B)
我将它们全部呈现在ItemsControl中。我创建了一个可以按需转换和转换的IValueConverter。转换期间返回一个项目的其他三个值将在源列表中更新。 我想知道是否可以保证在一个List Item ConvertBack调用后会调用其他人吗?
答案 0 :(得分:1)
不,这不能保证。 IValueConverter
仅转换应在模型上设置的值。
对于要根据该更改进行更新的视图,您的模型应实现INotifyPropertyChanged
并在设置属性后引发PropertyChanged
事件。
以下是实现INotifyPropertyChanged
的类的示例:
public class TestClass : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string property;
public string Property
{
get { return property; }
set
{
property = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Property)));
}
}
}
请注意,您通常使用实现该接口的基类(由所有MVVM库和框架提供)。