您可能需要使用MultiBinding
:
<TabItem Name="MyTab" Header="This should be enabled when result is 2">
<TabItem.IsEnabled>
<MultiBinding Converter={StaticResource MyAddConverter}>
<Binding Path=ValueA UpdateSourceTrigger=PropertyChanged />
<Binding Path=ValueB UpdateSourceTrigger=PropertyChanged />
</MultiBinding>
</TabItem.IsEnabled>
<!--Some other stuff-->
</TabItem>
在您的 ViewModel 中,您应该具有以下内容(假设您的 ViewModel 实现INotifyPropertyChanged
):
public double ValueA
{
get { return _valueA; }
set
{
_valueA = value;
OnPropertyChanged("ValueA");
}
}
同样 for ValueB
,这将允许 WPFBinding
每次更新ValueA
或者ValueB
更改
您的转换器应如下所示:
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
double valueA = (double)values[0];
double valueB = (double)values[1];
return valueA + valueB == 2;
}
这将允许您在 Converter 中定义一个外部方法,每次 ValueA 或 ValueB 发生变化时都会再次调用该方法。
我想说这就是你所需要的=)