DataGrid RowDetails Видимость на RowDoubleClick - PullRequest
0 голосов
/ 23 октября 2019

В моем Datagrid xaml я установил свернутый режим rowdetailsvisibility.

Затем я создал событие на RowDoubleClick, чтобы свернуть и развернуть детали строки при двойном щелчке по строке:

private void DgRowDoubleClick(object sender, RoutedEventArgs e)
{  
    var row = (DataGridRow)sender;
    row.DetailsVisibility = row.DetailsVisibility == Visibility.Collapsed ?
        Visibility.Visible : Visibility.Collapsed;
}

Теперь я хочу свернуть эти детали при выборе новой строки ... Я хочу подражать visiblewhenselected, но с помощью двойного щелчка.

Мои мысли: если возможно;детали строки сворачиваются при выборе новой строки, но новая строка не раскрывается до двойного щелчка. Второй двойной щелчок также должен иметь возможность свернуть детали текущей выбранной строки.

1 Ответ

0 голосов
/ 23 октября 2019

Обработка события DataGrid RowSelected. Об этом событии Скрыть предыдущий ряд. Теперь для того, чтобы получить доступ к предыдущей строке, проще всего будет сохранить ссылку в событии двойного щелчка. Примерно так:

    DataGridRow visibleDetailRow = null;
    private void Row_DoubleClick(object sender, RoutedEventArgs e)
    {
        visibleDetailRow = (DataGridRow)sender;
        visibleDetailRow.DetailsVisibility = visibleDetailRow.DetailsVisibility == Visibility.Collapsed ?
            Visibility.Visible : Visibility.Collapsed;
    }

    private void DataGridRow_Selected(object sender, RoutedEventArgs e)
    {
        if(visibleDetailRow != null)
            visibleDetailRow.DetailsVisibility = Visibility.Collapsed;
    }

Я не уверен, используете ли вы MVVM в своем коде, возможно, это можно было бы обработать более элегантным способом, связав видимость ваших данных с помощью MVVM, однако решение простораспространяется на ваш код.

...