我在UserControl中有一个可见性绑定。
<Grid x:Name="_dockPanelMain">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ContentControl Grid.Row="0" cal:Regionmanager.RegionName="{x:Static Member=consts:RegionNames.Mainmenu}" DockPanel.Dock="Top" Visibility="{Binding MainmenuVisibility,Mode=TwoWay}"/>
<ContentControl Grid.Row="0" x:Name="dockManagerModules" cal:Regionmanager.RegionName="{x:Static Member=consts:RegionNames.Modules}" Visibility="{Binding ModulesVisibility,Mode=TwoWay}"/>
<ContentControl Grid.Row="1" x:Name="dockManagerStatusBar" cal:Regionmanager.RegionName="{x:Static Member=consts:RegionNames.StatusBar}"/>
</Grid>
此用户控件具有一个ViewModel,其相关部分是
private void SwitchMenuAndmodulViews(object sender)
{
if (ModulesVisibility == Visibility.Visible)
{
ModulesVisibility = Visibility.Collapsed;
MainmenuVisibility = Visibility.Visible;
}
else
{
ModulesVisibility = Visibility.Visible;
MainmenuVisibility = Visibility.Collapsed;
}
}
private Visibility _modulesVisibility = Visibility.Visible;
public Visibility ModulesVisibility
{
get { return _modulesVisibility; }
set
{
_modulesVisibility = value;
RaisePropertyChangedEvent(() => ModulesVisibility);
}
}
private Visibility _mainmenuVisibility = Visibility.Collapsed;
public Visibility MainmenuVisibility
{
get { return _mainmenuVisibility; }
set
{
_mainmenuVisibility = value;
RaisePropertyChangedEvent(() => MainmenuVisibility);
}
}
调用SwitchMenuAndmodulView时,没有任何反应。变量会更改,但是绑定不起作用,并且两个ContentControl都始终将Visibility设置为Visible,我想这是默认设置,而且它们都没有更改为Collapsed。