Как узнать, когда привязка завершена? - PullRequest
1 голос
/ 17 ноября 2011

Когда я устанавливаю свойство .ItemSource () в DataGrid в коллекцию, вызов возвращается быстро, но впоследствии происходит фактическое связывание. Поскольку я хочу отобразить курсор ожидания, мне нужно определить, когда фактическое связывание закончилось. Есть ли какое-нибудь событие для этого?

Ответы [ 2 ]

1 голос
/ 17 ноября 2011

Все, что основано на ItemsControl, использует ItemContainerGenerator для генерации своих элементов в фоновом режиме. Вы можете получить доступ к свойству ItemContainerGenerator объекта DataGrid и подключить событие StatusChanged, чтобы определить, когда это будет сделано. Если вы используете виртуализацию и прокрутку, она сработает снова, поэтому вам необходимо при необходимости справиться с этим.

0 голосов
/ 09 июня 2017

Я ждал, когда сработает мое DataGrid событие Loaded, и я сделал BeginInvoke, например:

private void SubjectsList_Loaded(object sender, RoutedEventArgs e)
{
    Dispatcher.BeginInvoke(DispatcherPriority.Render, new Action(() => ColorMyRows()));
}

Более подробная информация доступна в моем ответе здесь: https://stackoverflow.com/a/44464630/2101117

...