WPF DataGrid: enlace de DataGridColumn visibilidad a ContextMenu MenuItems IsChecked (MVVM)
Quiero controlarDataGrid
visibilidad de la columna a través de unaContextMenu
disponible para el usuario haciendo clic derecho en el encabezado de la columna. losContextMenu
muestra los nombres de todas las columnas disponibles. Estoy usando el patrón de diseño MVVM.
Mi pregunta es: ¿Cómo atar elDataGridColumn
esVisibility
propiedad aIsChecked
propiedad de unMenuItem
ubicado en elContextMenu
.
Algún código de maqueta:
<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>
Si no estoy seguro, hágamelo saber e intentaré elaborar.
Aclamaciones,