我有一个WPF DataGrid,其定义如下.
<DataGrid Name="DataGridFoo"
AutoGenerateColumns="False"
ItemsSource="{Binding GridData}"
IsReadOnly="True"
SelectionMode="Extended"
SelectionUnit="CellOrRowHeader">
Run Code Online (Sandbox Code Playgroud)
这允许我让用户选择单元格的"区域".DataGrid绑定到一个可观察的集合.XAML列定义隐藏了一些列,一些可见如下:
<DataGridTextColumn Binding="{Binding InvoiceID}"
Header="Invoice ID"
Visibility="Hidden"
Width="Auto"/>
<DataGridTextColumn Binding="{Binding InvoiceNumber}"
Header="Invoice Number"
Visibility="Visible"
Width="Auto"/>
<DataGridTextColumn
Binding="{Binding InvoiceDate, StringFormat=\{0:MM/dd/yy\}}"
Header="Invoice Date"
Visibility="Visible"
Width="Auto"/>
Run Code Online (Sandbox Code Playgroud)
我还为DataGrid定义了一个鼠标右键按钮上下文菜单:
<DataGrid.ContextMenu>
<ContextMenu FontSize="16" Background="#FFE6E9EC">
<MenuItem Header="Contact" Click="Contact_Click" />
<Separator />
<MenuItem Header="Copy" Command="Copy" />
</ContextMenu>
</DataGrid.ContextMenu>
Run Code Online (Sandbox Code Playgroud)
我希望能够将当前选定单元格的副本单击,拖放到外部应用程序中.我正在考虑使用按"Alt键"和鼠标左键单击的组合来启动DragDrop操作.
例如,考虑DataGrid中"不规则"的单元格选择:
我不清楚如何处理并对此有几个问题:
1)我覆盖哪些事件,以便/鼠标左键单击不影响当前选定的单元格?
2)如何确定鼠标左键单击是否在所选单元格的区域内发生?我该如何处理数据?
3)一旦我确定了上述内容,下一步是什么?是否将数据复制到剪贴板以便在外部删除中使用?
4)我需要在DataGrid上覆盖哪些事件(如果有的话)以使其工作?
谢谢
| 归档时间: |
|
| 查看次数: |
601 次 |
| 最近记录: |