Rog*_*ueX 12 data-binding wpf datagrid wpftoolkit
我有一个包含的WPF用户控件DataGrid.我正在绑定一个ObservableCollection视图模型.每个视图模型都有另一个视图模型集合,我用它来绑定另一个视图模型DataGrid.因此效果是包含在行详细信息模板中DataGrid的嵌套DataGrid.
通常绑定非常快,但有时当有大量数据时,它可以在绑定/绘图发生时挂起UI.
有没有办法在绑定/绘图进行过程中显示加载动画或进度条?
可能有一个更正式的,或者至少更简单的解决方案,但是您可以使用模式弹出窗口,该窗口显示在工作线程中,并在网格完成加载时异步关闭:
Window waitWindow = new Window { Height = 100, Width = 200, WindowStartupLocation = WindowStartupLocation.CenterScreen, WindowStyle = WindowStyle.None };
waitWindow.Content = new TextBlock { Text = "Please Wait", FontSize = 30, FontWeight = FontWeights.Bold, HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center };
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += delegate
{
Dispatcher.BeginInvoke(new Action(delegate { waitWindow.ShowDialog(); }));
DataLoader dataLoader = new DataLoader(); // I made this class up
dataLoader.DataLoaded += delegate
{
Dispatcher.BeginInvoke(new Action(delegate() { waitWindow.Close(); }));
};
dataLoader.LoadData();
};
worker.RunWorkerAsync();
Run Code Online (Sandbox Code Playgroud)
您可以用类似于加载栏的东西替换 TextBlock,并且可以通过参数化处理网格加载的对象并将其传递给常用方法来使代码可重用。
我希望这对你有用。
| 归档时间: |
|
| 查看次数: |
8948 次 |
| 最近记录: |