【发布时间】:2023-03-03 21:39:01
【问题描述】:
在 WPF MVVM 解决方案中,我使用后台工作程序来显示繁忙的指示符,同时获取一些数据并填充(telerik)树视图。当我的(父)用户控件(持有 TreeView 和 RadBusyIndicator)被加载时,我正在尝试执行此操作:
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
BackgroundWorker bg = new BackgroundWorker();
bg.DoWork += (object sender_, DoWorkEventArgs e_) =>
{
GetData();
};
bg.RunWorkerCompleted += (object sender_, RunWorkerCompletedEventArgs e_) =>
{
TreeView.ExpandAll();
IsBusy = false;
};
IsBusy = true;
bg.RunWorkerAsync();
}
数据提取工作正常,树视图的项目源设置正常。
除了TreeView.ExpandAll(),一切正常。
XAML 代码:
出现树视图的顶部节点,但未展开底层项目。我必须单击它们打开(效果很好)。知道为什么树视图没有扩展吗?我可以做些什么来完成这项工作?
【问题讨论】:
-
您不能从 UI 线程以外的任何线程创建、访问或更新任何 UI 元素。您需要向我们展示您的所有代码。
标签: c# wpf multithreading backgroundworker radtreeview