列的单元格的数据触发器 - Datagrid WPF C#

时间:2017-02-21 14:49:55

标签: c# wpf xaml datagrid

我有一个简单的datadtgrid,有3列。我想在ColumnA个单元格上获得“数据触发器”;如果用户选择ColumnA中的任何单元格,则“获取该值”并对其执行某些操作。最终,我将使用该单元格值来填充另一个数据网格。但首先,我只想在列上放置数据触发器并在后面的代码中提取该信息。

以下是XAML代码:

我确实在列上放了<style.triggers>,但不知道如何继续进行。

 <DataGrid Grid.Row="1" x:Name="ProducerReport1" ItemsSource="{Binding PopulateProducerData}" AutoGenerateColumns="False"                                                    >

                                            <DataGrid.Columns>
                                                <DataGridTextColumn Header="ColumnA" Binding="{Binding ProducerName, UpdateSourceTrigger=PropertyChanged}" IsReadOnly="True"  >

                                                    <DataGridTextColumn.CellStyle>
                                                        <Style TargetType="{x:Type DataGridCell}">
                                                            <Style.Triggers>

                                                            </Style.Triggers>  
                                                        </Style>
                                                    </DataGridTextColumn.CellStyle>


                                                  </DataGridTextColumn>
    <DataGridTextColumn Header="ColumnB" Binding="{Binding reservoirname, UpdateSourceTrigger=PropertyChanged}" IsReadOnly="True" >

    </DataGridTextColumn>
 <DataGridTextColumn Header="ColumnC" Binding="{Binding subsectorname, UpdateSourceTrigger=PropertyChanged}" IsReadOnly="True" >

 </DataGridTextColumn>

1 个答案:

答案 0 :(得分:1)

您可以使用PreviewMouseLeftButtonDown处理DataGridCell的{​​{1}}事件:

CellStyle
<DataGridTextColumn Header="ColumnA" Binding="{Binding ProducerName, UpdateSourceTrigger=PropertyChanged}" IsReadOnly="True">
    <DataGridTextColumn.CellStyle>
        <Style TargetType="DataGridCell">
            <EventSetter Event="PreviewMouseLeftButtonDown" Handler="dg_MouseLeftButtonDown" />
        </Style>
    </DataGridTextColumn.CellStyle>
</DataGridTextColumn>