如何在wpf中禁用整个视图

如何在wpf中禁用整个视图,wpf,prism,Wpf,Prism,我正在MVVM模式下开发WPF应用程序 我的应用程序由两个模块组成。 第一个模块由一个视图组成。在该视图的底行中,我添加了另一个区域,另一个模块在其中加载自己的视图 问题:每当用户在上部视图中进行任何更改时,下部视图(由另一个模块加载)都应该被禁用 如何做到这一点?有什么方法可以禁用整个视图吗?如果“view.IsEnabled=false”就足够了吗?您可以在视图中放置另一个控件,当加载视图模型时,该控件将覆盖视图的其余部分 例如,如果您的视图位于表的第二行,您还可以在加载时放置一个边框,该边

我正在MVVM模式下开发WPF应用程序

我的应用程序由两个模块组成。 第一个模块由一个视图组成。在该视图的底行中,我添加了另一个区域,另一个模块在其中加载自己的视图

问题:每当用户在上部视图中进行任何更改时,下部视图(由另一个模块加载)都应该被禁用


如何做到这一点?有什么方法可以禁用整个视图吗?

如果“view.IsEnabled=false”就足够了吗?

您可以在视图中放置另一个控件,当加载视图模型时,该控件将覆盖视图的其余部分

例如,如果您的视图位于表的第二行,您还可以在加载时放置一个边框,该边框将占据整行,以便用户在其可见时无法执行任何操作<下面的代码>正在工作将只是您在开始加载数据或执行任何不希望用户使用控件的操作时在视图模型中设置的属性

<Grid>
   <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
   </Grid.RowDefinitions>

   <myviews:View1 Grid.Row="0" />

   <myviews:View2 Grid.Row="1" />
   <Border Background="#30505050" 
           Grid.Row="1"
           Visibility="{Binding Path=IsWorking, Converter={x:Static CommonConverters:BooleanToVisibilityConverter.Default}}"/>
</Grid>


如果您想更多地使用边框,如添加工作时播放的动画,也可以将边框放入自己的控件或用户控件中。

XAML UI是元素的层次结构,通过将IsEnabled设置为false禁用任何元素也会禁用其包含的所有子元素。如果需要启用滚动条或工具提示之类的内容,则需要更细粒度的iEnabled设置