获取数据网格列值 - WPF C#

Posted

技术标签:

【中文标题】获取数据网格列值 - WPF C#【英文标题】:Get datagrid column value - WPF C# 【发布时间】:2017-11-16 21:26:53 【问题描述】:

我有一个包含两列的数据网格;好和修井。 WPF:

<DataGrid  x:Name="PrintReport1" ItemsSource="Binding TableResults" AutoGenerateColumns="False" FontFamily="Tahoma" FontSize="14" 
IsReadOnly="True" CanUserSortColumns="True" HorizontalContentAlignment="Stretch"  VerticalContentAlignment="Stretch"  SelectionMode="Extended" SelectionUnit="Cell">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Well" Binding="Binding WellName, UpdateSourceTrigger=PropertyChanged" IsReadOnly="True"  >

            <DataGridTextColumn.CellStyle>
                <Style TargetType="DataGridCell">
                    <EventSetter Event="PreviewMouseLeftButtonDown" Handler="dg_MouseLeftButtonDown_Injector" />
                </Style>
            </DataGridTextColumn.CellStyle>
        </DataGridTextColumn>
        <DataGridTextColumn Header="Recommendated Workover Type" Binding="Binding WorkoverRecommendation, UpdateSourceTrigger=PropertyChanged" IsReadOnly="True"  >                                                               </DataGridTextColumn>
   </DataGrid.Columns>

</DataGrid> 

第一列有一个eventsetter 事件,当用户单击特定单元格时,我可以通过该事件获取列值:

private void dg_MouseLeftButtonDown_Injector(object sender, MouseButtonEventArgs e)

    DataGridCell cell = sender as DataGridCell;
    dynamic dataObject = cell.DataContext;
    string InjectorName = dataObject.WellName;
    //do something...

我的问题是如何获得对应的第二列值? 例如,如果datagrid 看起来像这样:

Well  Workover

Well1     ABC

Well2     DEF

如果用户点击“Well2”单元格,我如何获得相应的修井值; “防御”?

【问题讨论】:

dataObject.WorkoverRecommendation @ASh thnx。这很容易! 【参考方案1】:
dataObject.WorkoverRecommendation

【讨论】:

以上是关于获取数据网格列值 - WPF C#的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 mvvm 模式中获取 wpf 数据网格上的动态列?

C#如何通过ID从数据表中获取两列值

如何在 WPF C# 中的 DataGrid 的 TextBoxes 中获取选定的行值

如何在代码中从 WPF 数据网格列标题 (DataGridTemplateColumn) 获取工具提示?

如何在我的 DataGrid 中获取所选单元格的当前列(C# WPF 应用程序)

WPF如何在数据网格中填充组合框