Я хочу контролировать видимость столбца 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>
... 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>
Если я неясен, пожалуйста, дайте мне знать, и я попытаюсь уточнить.
Приветствия,