拖拽在WPF中的Datagrid标头上删除列表视图项

时间:2011-08-01 07:15:48

标签: wpf listview datagrid drag-and-drop

琐碎,但我真的坚持了......我怎样才能找到丢弃该项目的DataGrid列(或标题)?我在DataGrid.Drop事件中看不到任何可检索信息。

1 个答案:

答案 0 :(得分:1)

我现在正在编写一些dataGrid D& D,我发现你做的唯一方法是将Drop监听器放在每个dataGridColumnHeader和每个DataGridCell上。

在我写的时候,我的单元格中有Drop监听器,dataGridColumnHeaders和datagrids(对于数据网格背景的下拉,如果你没有足够的行/列来填充DG)。

这些侦听器使用单元格的drop listener中的myDataGrid.Columns.IndexOf(((DataGridCell)sender).Column)之类的内容获取单元格的Row / col索引,然后在我的DG类中调用常用方法。

它实际上并不像你想象的那么混乱。

关于您的评论

编辑:“但是如何将事件处理程序附加到DataGrid标题?”

例如,在你的MyDataGrid.xaml中

<DataGrid.ColumnHeaderStyle>
    <Style TargetType="{x:Type DataGridColumnHeader}">
        <EventSetter Event="DropEvent" Handler="ColumnHeaderDropHandler" />
    </Style>
</DataGrid.ColumnHeaderStyle>

当然,您需要在后面的代码中实现ColumnHeaderDropHandler。