당신은이 MultiBinding
사용해야 할 수도 있습니다 :
당신의 ViewModel에서
<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은 INotifyPropertyChanged
를 구현) :
public double ValueA
{
get { return _valueA; }
set
{
_valueA = value;
OnPropertyChanged("ValueA");
}
}
그리고 ValueB
에 대해서도 WPF가 매번 Binding
을 업데이트 할 수 있습니다.(210) 또는 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 또는 VALUE (단위 : 십억)를 다시 호출 될 변환기에 정의 된 하나의 외부 방법을 가질 수 있도록한다.
나는 당신이 필요로하는 모든 것을 말하고 싶습니다. =)
_valueA 및 _valueB는 어디에서 계산되며 언제 다시 계산해야합니까? –
현재 클래스의 전역 변수가 될 수도 있고 외부 계산기 클래스가 할당 될 수도 있습니다. 중요하지 않습니다. IsEnabled 속성을이 메서드 나 클래스 속성에 바인딩하면됩니다. – JiKra