我正在尝试创造一种情况,即ToggleButton
任何时候都可以打开一组两个 s 中的一个或一个。我遇到的问题是,如果我更改支持变量的状态,UI 状态不会更新。
我确实INotifyPropertyChanged
实现了。
我已经ToggleButton
像这样创建了我的 s:
<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;
}
}