是否保证在 IValueConverter ConvertBack 调用时其他视图会更新?

Is it guaranteed that on IValueConverter ConvertBack call other views would update?

是否保证在调用 IValueConverter ConvertBack 时其他视图会更新以及如何强制执行?

我在一个列表中有 4 个参数。它们中的每一对都可以通过以下方式从另外两个计算出来:

A = f(a,b)
B = f2(a,b)
a = f3(A,B)
b = f4(A,B)

我将它们全部呈现在 ItemsControl 中。我创建了一个 IValueConverter,它可以按需进行 Convert 和 ConvertBack。在一个项目的转换返回期间,其他三个项目的值在源列表中更新。 我想知道是否保证在一个List Item ConvertBack 调用之后其他的会被调用?

不,这不能保证。 IValueConverter 只转换应该在模型上设置的值。

要根据该更改更新视图,您的模型应在设置 属性 后实施 INotifyPropertyChanged and raise the PropertyChanged 事件。

这是一个 class 的例子,它实现了 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)));
        }
    }
}

请注意,您通常会使用实现该接口的基础 class(由所有 MVVM 库和框架提供)。