我希望通过用户可用的ContextMenu控制DataGrid列可见性,方法是右键单击列标题。ContextMenu将显示所有可用列的名称。我使用的是MVVM设计模式。
我的问题是:如何将DataGridColumn的Visibility属性绑定到位于ContextMenu中的MenuItem的IsChecked属性。
一些模型代码:
<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前缀
<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> 如果我不清楚,请让我知道,我会尝试详细说明。
干杯,
发布于 2010-05-14 06:17:32
您可以使用x: booleanToVisibilityConverter代替静态
<Setter TargetName="UIElement" Property="UIElement.Visibility" Value="x:Static Visibility.Hidden" />XAML中的静态:http://msdn.microsoft.com/en-us/library/ms742135.aspx
https://stackoverflow.com/questions/1560871
复制相似问题