在 MainWindow.xaml 中,我有以下内容...
<Window.Resources>
<BooleanToVisibilityConverter x:Key="BooleanToVisibility" />
</Window.Resources>
// Tab control
<TabItem x:Name="DebugTab" Header="Debug" Visibility="{Binding Path=DebugTabState, Converter={StaticResource ResourceKey=BooleanToVisibility}}">
// Some content
</TabItem>
在 MainWindow.xaml.cs 中,我有以下内容...
public bool DebugTabState
{
get
{
return AppData.EnableDebuggingCheckBox;
}
}
在 DebugSettings.xaml 中,我有以下内容...
<CheckBox x:Name="EnableDebuggingCheckBox" Content="Enable Debugging" IsChecked="{Binding Path=EnableDebugging}" />
在 DebugSettings.xaml.cs 中,我具有以下内容...
public bool EnableDebugging
{
get
{
return AppData.EnableDebuggingCheckBox;
}
set
{
AppData.EnableDebuggingCheckBox = value;
}
}
最后,在 AppData.cs 中,我有以下内容...
private bool _enableDebuggingCheckBox;
public bool EnableDebuggingCheckBox
{
get
{
return _enableDebuggingCheckBox;
}
set
{
_enableDebuggingCheckBox = value;
OnPropertyChanged("EnableDebuggingCheckBox");
}
}
选中和取消选中EnableDebuggingCheckBox会按预期将值更新为true或false,但是DebugTab不会隐藏或显示。我想念什么吗?
谢谢!
答案 0 :(得分:0)
如果Appdata是MainWindow中的公共属性,请将绑定更改为:
<TabItem x:Name="DebugTab" Header="Debug" Visibility="{Binding Path=AppData.EnableDebuggingCheckBox, Converter={StaticResource ResourceKey=BooleanToVisibility}}">
// Some content
</TabItem>
然后可以删除MainWindow.DebugTabState。
或者,在MainWindow中,建议从AppData到INotifyPropertyChange并在EnableDebuggingCheckBox更改的情况下引发PropertyChanged事件