![](/img/trans.png)
[英]Is there a way in WPF MVVM to refresh all the controls within a TabControl
[英]WPF MVVM: Top panel to block all controls
我的主窗口视图:
<Window.Resources>
<BooleanToVisibilityConverter x:Key="BoolToVisibility"/>
</Window.Resources>
<Grid x:Name="TopGrid">
<Rectangle x:Name="TopPanel" Grid.ZIndex="3"
Fill="LightBlue" Opacity="0.3"
Visibility="{Binding IsContentBlocked, Mode=TwoWay, Converter={StaticResource BoolToVisibility}}" />
<Grid Name="main" DataContext="{StaticResource mainViewModel}">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.2*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<!-- Here my controls: stackpanel, buttons, groupboxes, etc. -->
</Grid>
</Grid>
查看型号:
private bool isContentBlocked = false;
public bool IsContentBlocked
{
get
{
return this.isContentBlocked;
}
set
{
if (this.isContentBlocked == value)
{
return;
}
this.isContentBlocked = value;
OnPropertyChanged("IsContentBlocked");
}
}
最初,当我启动 WPF 应用程序时,应隐藏顶部面板,因此应启用所有内容,用户应该可以玩它们,但由于某种原因,顶部面板并未隐藏,而是显示出来,因此无法访问所有内容. 我使用一个矩形来使内容显示为块状。
我究竟做错了什么?
我的视图模型正确地实现了 INotifyPropertyChanged。
假设您的IsContentBlocked
属性在mainViewModel
定义,您应该将TopGrid
的DataContext
设置为这个
<Grid x:Name="TopGrid" DataContext="{StaticResource mainViewModel}">
<Rectangle x:Name="TopPanel" Grid.ZIndex="3"
Fill="LightBlue" Opacity="0.3"
Visibility="{Binding IsContentBlocked, Converter={StaticResource BoolToVisibility}}" />
<Grid Name="main">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.2*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<!-- Here my controls: stackpanel, buttons, groupboxes, etc. -->
</Grid>
</Grid>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.