我想通过右键单击列标题来控制用户可用的DataGrid
列可见性ContextMenu
.将ContextMenu
显示所有可用的列的名称.我正在使用MVVM设计模式.
我的问题是:如何将绑定DataGridColumn
的Visibility
属性设置IsChecked
的属性MenuItem
地处ContextMenu
.
一些模型代码:
<UserControl.Resources>
<ContextMenu x:Key="ColumnHeaderContextMenu">
<MenuItem Header="Menu Item..1" IsCheckable="True" />
</ContextMenu>
<Style x:Key="ColumnHeaderStyle"
TargetType="{x:Type toolkit:DataGridColumnHeader}">
<Setter Property="ContextMenu"
Value="{StaticResource ColumnHeaderContextMenu}" />
</Style>
<BooleanToVisibilityConverter x:Key="booleanToVisibilityConverter" />
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)
... flaf flaf flaf
<toolkit:DataGrid x:Name="MyGrid" AutoGenerateColumns="False"
ItemsSource="{Binding MyCollection, Mode=Default}"
EnableColumnVirtualization="True" IsReadOnly="True"
ColumnHeaderStyle="{StaticResource ColumnHeaderStyle}">
<toolkit:DataGrid.Columns>
<toolkit:DataGridTextColumn Binding="{Binding Path=MyEntry}"
Header="MyEntry" Visibility="{Binding IsChecked, Converter=
{StaticResource booleanToVisibilityConverter}.... />
</toolkit:DataGrid.Columns>
</toolkit:DataGrid>
Run Code Online (Sandbox Code Playgroud)
如果我不清楚请告诉我,我会尝试详细说明.
干杯,