如何在DataGrid中创建一个非超链接项? C#WPF VisualStudio 2015社区

时间:2016-05-05 15:45:21

标签: c# wpf xaml datagrid visual-studio-2015

如何在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;

1 个答案:

答案 0 :(得分:0)

好吧,让CellClick事件不是很方便?

但这并不意味着您无法找到接收到点击的元素。每当鼠标单击发生时,您可以捕获它并查找原始源并进行深入挖掘,直到您收到一个单元格或它成为最顶层的元素。

然后,如果你发现source为cell,瞧,你得到了你点击的单元格。

此处提供了示例的详细说明。请看看。

WPF DataGrid - detecting the column, cell and row that has been clicked