Получить значение текущей ячейки и следующей ячейки по событию SelectedCellsChanged - PullRequest
0 голосов
/ 17 января 2020

У меня есть таблица данных WPF с использованием шаблона MVVM. Мне нужно получить значение текущей ячейки и соседней ячейки, когда фокус меняется с текущей ячейки. Это мое 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 в этом случае. Так как это не имеет ничего общего с бизнес-логикой c, я решил сделать это в коде позади себя.

Как мне получить значения?

Или есть ли лучший способ получить то же самое в других событиях?

1 Ответ

0 голосов
/ 17 января 2020

Попробуйте это в SelectedCellsChanged:

var cellContent = optValueColumn.GetCellContent(e.AddedCells.First().Item);
if(cellContent is ContentPresenter presenter)
{
    var content = presenter.Content;
}

Поскольку я не знаю ваш CellTemplate, ваш cellContent может отличаться от ContentPresenter

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...