我有GridView
一些列显示材料。viewmodel 值都以 kg 为单位保存,因为某些视图应转换并显示为升。使用IMultiValueConverter
.
public object Convert(object[] values, ...){
var valueInKg = (double)values[0];
var density = (double)values[1];
return valueInKg/density;
}
现在我在进行向后转换时遇到问题。我试图将输入值(密度)存储在转换器中,但确实有它的单个实例,因此有时密度值错误。我找到了这个 x:shared="false" 方法,但想将转换器设置在派生自System.Windows.Data.MultiBinding
.
public class MyBinding : MultiBinding {
public MyBinding(){
Converter = new MyConverter();
}
}
我认为这将导致每个 Binding 都有一个单独的实例——它不会。我怎样才能做到这一点?
编辑:正如 mm8 在此答案中所建议的,问题在于绑定实例。在其单元格模板中定义 a 上的绑定时,GridViewColumn
我将每列仅点击构造函数一次。所以问题是我怎样才能改变它——它甚至可能吗?