いつでも 2 つのグループの 1 つまたは 1 つもToggleButton
オンにできない状況を作成しようとしています。私が抱えている問題は、バッキング変数の状態を変更すると、UI の状態が更新されないことです。
私はINotifyPropertyChanged
実装しました。
私はToggleButton
次のように自分のを作成しました:
<ToggleButton IsChecked="{Binding Path=IsPermanentFailureState, Mode=TwoWay}"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center">
<TextBlock TextWrapping="Wrap"
TextAlignment="Center">Permanent Failure</TextBlock>
</ToggleButton>
<ToggleButton IsChecked="{Binding Path=IsTransitoryFailureState, Mode=TwoWay}"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center">
<TextBlock TextWrapping="Wrap"
TextAlignment="Center">Temporary Failure</TextBlock>
</ToggleButton>
これは私のバッキング プロパティです (私は MVVM パターンを使用しています。他のバインディングは機能します。IE をクリックすると、ToggleButton
これらのプロパティ設定に入ります。コードで状態を変更している場合、トグル ボタンは視覚的な状態を変更しません。IE Iバッキング プロパティを false に設定していますが、ボタンはチェックされたままです。
public bool? IsPermanentFailureState
{
get { return isPermFailure; }
set
{
if (isPermFailure != value.Value)
{
NotifyPropertyChanged("IsPermanentFailureState");
}
isPermFailure = value.Value;
if (isPermFailure) IsTransitoryFailureState = false;
}
}
public bool? IsTransitoryFailureState
{
get { return isTransitoryFailureState; }
set
{
if (isTransitoryFailureState != value.Value)
{
NotifyPropertyChanged("IsTransitoryFailureState");
}
isTransitoryFailureState = value.Value;
if (isTransitoryFailureState) IsPermanentFailureState = false;
}
}