を使用する必要がある場合があります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");
}
}
についても同様でValueB
、これにより、WPF はまたはが変更Binding
されるたびに を更新できます。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;
}
これにより、ValueA または ValueB が変更されるたびに再度呼び出される、Converter で定義された 1 つの外部メソッドを持つことができます。
必要なのはそれだけだと思います=)