C# 获取SelectedCellsChanged事件中当前单元格和下一个单元格的值

C# 获取SelectedCellsChanged事件中当前单元格和下一个单元格的值,c#,wpf,datagrid,C#,Wpf,Datagrid,我有一个使用MVVM模式的WPF数据网格。当焦点从当前单元格改变时,我需要得到当前单元格和相邻单元格的值。这是我的XAML <DataGrid x:Name="dgOptions" Grid.Row="1" SelectedCellsChanged="dgOptions_SelectedCellsChanged"> <materialDesign:DataGridTemplateColumn x:Name="optValueColumn" Width="1*" C

我有一个使用MVVM模式的WPF数据网格。当焦点从当前单元格改变时,我需要得到当前单元格和相邻单元格的值。这是我的
XAML

<DataGrid x:Name="dgOptions" Grid.Row="1" SelectedCellsChanged="dgOptions_SelectedCellsChanged">
       <materialDesign:DataGridTemplateColumn x:Name="optValueColumn" Width="1*" CellTemplateSelector="{StaticResource TemplateSelector}">
            <materialDesign:DataGridTemplateColumn.CellEditingTemplate>
                <DataTemplate>
                    <Grid materialDesign:FocusManager.FocusedElement="{Binding ElementName=optValueColumn}"/>
                </DataTemplate>
            </materialDesign:DataGridTemplateColumn.CellEditingTemplate>
            <materialDesign:DataGridTemplateColumn.Header>
                <TextBlock Text="Value" TextWrapping="Wrap" TextAlignment="Center"/>
            </materialDesign:DataGridTemplateColumn.Header>
        </materialDesign:DataGridTemplateColumn>

        <materialDesign:DataGridTemplateColumn x:Name="optDefaultValueColumn" Visibility="Hidden" CellTemplateSelector="{StaticResource TemplateSelector}"/> 
</DataGrid> 

我已经有了一个
SelectedCellsChanged
事件,它做了一些聚焦的事情。在此事件中,我需要获取
optValueColumn
optDefaultValueColumn
的值。因为这和业务逻辑无关,所以我决定用代码本身来实现

如何获取值


或者有没有更好的方法在其他活动中达到同样的效果?

SelectedCellsChanged
中尝试此方法:

var cellContent = optValueColumn.GetCellContent(e.AddedCells.First().Item);
if(cellContent is ContentPresenter presenter)
{
    var content = presenter.Content;
}
由于我不知道您的CellTemplate,您的cellContent可能与ContentPresenter的类型不同