Ответ 1
Событие Loaded на нужном элементе управления TreeView произойдет после того, как все привязки будут настроены. Я думаю, что это происходит до того, как все было нарисовано, так что это может быть не совсем то, что вам нужно.
Когда я выбираю элемент в своем древовидном представлении, есть заметный промежуток времени от моего класса viewmodel, который создается при обновлении представления, а treeview node - привет-ли.
Мне нужно показать курсор ожидания в течение этого времени - я пробовал обернуть код, который создает экземпляр класса viewmodel, но курсор возвращается к стрелке за пару секунд до того, как завершается привязка данных, а node получает подсветку. Есть ли какое-то событие, которое сообщает мне, когда привязка завершена, или когда приветствуется node?
Это не связано с расширением узлов, просто выбрав узлы верхнего уровня.
Спасибо за любую помощь.
Событие Loaded на нужном элементе управления TreeView произойдет после того, как все привязки будут настроены. Я думаю, что это происходит до того, как все было нарисовано, так что это может быть не совсем то, что вам нужно.
Вы можете получить уведомление, когда цель или когда источник обновлен.
<TreeViewItem>
<TextBlock Name="NameText"
Text="{Binding Path=Name, Mode=OneWay, NotifyOnTargetUpdated=True}"
TargetUpdated="OnTargetUpdated"/>
</TreeViewItem>
Есть ли "зависание", когда происходит этот разрыв? Возможно, вам нужно поместить тяжелую логику в отдельный поток или просто использовать свойство IsAsync класса Binding. Вы также можете взглянуть на Приоритетную привязку. Здесь - довольно хорошая статья о том, как ее использовать.
Вы можете переопределить элемент управления OnContentRendered for Window.