如何在DataGrid中创建可点击的非超链接项?
我在Visual Studio 2015社区中使用C#创建WPF程序。我已经使用List中的数据成功填充了我的DataGrid。我希望能够单击一个单元格并显示有关单元格中项目的详细信息。我已经找到了如何单击该行并在单击的行下面添加一个明细行,但这根本不是我要查找的行为。
我在这里看到的最近的是: How can I make double clicking on a DataGrid item open a more detailed view? 和 Highlight one item in DataGrid
他们似乎都是好方向,但我无法适应它们。我非常感谢任何学习资源的输入或指导。
谢谢, 埃里克
这是我在完全扩展之前尝试上班的原因。我留下了行细节,但实际上并不是我想做的。
XAML
<DataGrid x:Name="dataGrid2" Margin="84,310,194,69" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn
Header="Plugin"
Binding="{Binding name}"
FontSize="14"
IsReadOnly="True"/>
<DataGridTextColumn
Header="Developer"
Binding="{Binding developer}"
FontSize="14"
IsReadOnly="True" />
</DataGrid.Columns>
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Height="30">
<TextBlock Text="Plugin: " HorizontalAlignment="Center" VerticalAlignment="Center"/>
<Button Content="{Binding name}" Click="click" BorderBrush="{x:Null}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</StackPanel>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
C#
dataGrid2.ItemsSource = pluginList.plugins;
答案 0 :(得分:0)
好吧,让CellClick事件不是很方便?
但这并不意味着您无法找到接收到点击的元素。每当鼠标单击发生时,您可以捕获它并查找原始源并进行深入挖掘,直到您收到一个单元格或它成为最顶层的元素。
然后,如果你发现source为cell,瞧,你得到了你点击的单元格。
此处提供了示例的详细说明。请看看。
WPF DataGrid - detecting the column, cell and row that has been clicked