Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Wpf:Treeview更新或datatemplate应用事件_C#_Wpf_Events_Treeview - Fatal编程技术网

C# Wpf:Treeview更新或datatemplate应用事件

C# Wpf:Treeview更新或datatemplate应用事件,c#,wpf,events,treeview,C#,Wpf,Events,Treeview,场景是:在我的窗口中,我有一个树视图;其中的每一项表示不同的用户定义类型。所以我为每种类型定义了DataTemplate。这些数据模板使用用户控件,这些用户控件与用户定义类型的属性绑定。简单地说,TreeView映射了用户定义类型的分层数据结构 现在我从XML中读取并创建层次结构,并将其分配给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个元素。此外,我的数据模板中还使用了用户控件,我不知道如何在后台线程的层次结构中创建绑定和添加项,您能提供一些示例吗?