在WPF中设置数据网格的可见性

uda*_*726 1 wpf mvvm wpfdatagrid

在我的应用程序中,我在一个xaml文件中有3个数据网格.基于用户选择我想显示一个网格并隐藏其他网格.

在我的视图模型类中,我为每个网格都有布尔属性,并根据选择我将其设置为true或false.但是所有网格都是可见的.

    <DataGrid  Visibility="{Binding Path=IsGridVisible}" >
Run Code Online (Sandbox Code Playgroud)

在我的视图模型中,我设置了IsGridVisible值

public bool IsCapexGridVisible
    {
        get { return isCapexGridVisible; }
        set { isCapexGridVisible = value; RaisePropertyChangedEvent("IsCapexGridVisible"); }
    }
Run Code Online (Sandbox Code Playgroud)

请提供您的想法.谢谢

Nit*_*esh 9

有一个BooleanToVisibilityConverter提供给您的是转换trueSystem.Windows.Visibility.VisiblefalseSystem.Windows.Visibility.Collapsed.

因此,您可以获得此预构建转换器的帮助,并且必须将其添加到资源中.

<BooleanToVisibilityConverter x:Key="BoolToVis"/>
Run Code Online (Sandbox Code Playgroud)

bool在ViewModel中创建一个类型的属性

    bool _dgVisibility;
    public bool DataGridVisibility
    {
        get {  return _dgVisibility;  }
        set
        {
            _dgVisibility = value;
            OnPropertyChanged("DataGridVisibility");
        }
    }
Run Code Online (Sandbox Code Playgroud)

你可以用它如下

<DataGrid Visibility="{Binding Path=DataGridVisibility, Converter={StaticResource BoolToVis}}"/>
Run Code Online (Sandbox Code Playgroud)