C# Wpf:Treeview更新或datatemplate应用事件
场景是:在我的窗口中,我有一个树视图;其中的每一项表示不同的用户定义类型。所以我为每种类型定义了DataTemplate。这些数据模板使用用户控件,这些用户控件与用户定义类型的属性绑定。简单地说,TreeView映射了用户定义类型的分层数据结构 现在我从XML中读取并创建层次结构,并将其分配给TreeView,加载它需要很多时间。它已经有一些默认节点,并为其他节点更新自身 我想显示一个等待光标,直到它被加载并可供用户使用,但我没有收到任何事件通知我这一点。有这样的事件吗?我还能做什么?试试这个活动,如C# Wpf:Treeview更新或datatemplate应用事件,c#,wpf,events,treeview,C#,Wpf,Events,Treeview,场景是:在我的窗口中,我有一个树视图;其中的每一项表示不同的用户定义类型。所以我为每种类型定义了DataTemplate。这些数据模板使用用户控件,这些用户控件与用户定义类型的属性绑定。简单地说,TreeView映射了用户定义类型的分层数据结构 现在我从XML中读取并创建层次结构,并将其分配给TreeView,加载它需要很多时间。它已经有一些默认节点,并为其他节点更新自身 我想显示一个等待光标,直到它被加载并可供用户使用,但我没有收到任何事件通知我这一点。有这样的事件吗?我还能做什么?试试这个活
Mouse.OverrideCursor = Cursors.Wait;
treeView.LayoutUpdated += treeView_LayoutUpdated;
void treeView_LayoutUpdated( object sender, EventArgs e )
{
Mouse.OverrideCursor = null;
treeView.LayoutUpdated -= treeView_LayoutUpdated;
}
您确定数据模板的应用程序花费了很长时间吗?似乎更有可能是XML的加载和解析以及对象的创建。您当然可以监视这些操作的状态。@Jay我编写的逻辑并不花费太多时间,在完成逻辑运行后,需要20-30秒才能进入视图。所以,我希望是treeview加载和数据模板应用从框架方面占用了timelogic 20-30秒是一个非常长的时间;我想知道这个层次结构包含多少项?您是否能够创建绑定,然后在后台线程中将项目添加到层次结构中,或者在显示任何内容之前是否需要创建整个图形?@Jay My tree可以包含500-600个元素。此外,我的数据模板中还使用了用户控件,我不知道如何在后台线程的层次结构中创建绑定和添加项,您能提供一些示例吗?