【发布时间】:2011-08-08 20:20:37
【问题描述】:
我目前有一个数据网格,其中包含每个列的唯一上下文菜单。示例 xaml 如下:
<DataGrid.ColumnHeaderStyle>
<Style TargetType="DataGridColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="ContextMenu" Value="{StaticResource default_columnHeaderMenu}" />
</Style>
</DataGrid.ColumnHeaderStyle>
<DataGrid.Columns>
<DataGridTextColumn Header="Person" Binding="{Binding Path=PersonID}" CellStyle="{StaticResource CenterAlignedCellStyle}" />
....
在上下文菜单中,我有一个名为“插入列”的项目,其中包含一个列列表,如下所示:
<ContextMenu x:Key="default_columnHeaderMenu" Name="defaultColumnHeaderMenu">
<MenuItem Header="Insert Column" >
<MenuItem Header="Person ID" Click="addColumn"/>
<MenuItem Header="Health" />
<MenuItem Header="Person Description" />
<MenuItem Header="Person Age" />
.....
我的问题是,使用列标题上下文菜单,将这些列添加或复制到我的数据网格中的最简单方法是什么? (我不是在寻找全新的空列,而是在寻找已经存在的具有相同数据的列的某种“副本”等)
使用 DataGrid.Columns,有没有办法根据标题名称查找列的索引?
感谢您的任何帮助/建议。
【问题讨论】: