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