gpt4 book ai didi

wpf - wpf数据绑定(bind)发生时如何显示加载图形/动画

转载 作者:行者123 更新时间:2023-12-04 01:10:57 24 4
gpt4 key购买 nike

我有一个 WPF 用户控件,其中包含 DataGrid .我正在绑定(bind) ObservableCollection的 View 模型。每个 View 模型都有另一个 View 模型集合,我用它们来绑定(bind)另一个 DataGrid到。所以效果是DataGrid带有嵌套 DataGrid包含在行详细信息模板中。

通常绑定(bind)很快,但有时当有大量数据时,它可能会在绑定(bind)/绘图发生时挂起 UI。

有没有一种方法可以在绑定(bind)/绘图过程中显示加载动画或进度条?

最佳答案

可能有一个更正式的,或者至少更简单的解决方案,但是您可以使用在工作线程中显示的模式弹出窗口,并在您的网格完成加载时异步关闭:

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();

您可以将 TextBlock 替换为类似于加载条的东西,并且可以通过参数化处理网格加载的对象并将其传递给常用方法来使代码可重用。

我希望这对你有用。

关于wpf - wpf数据绑定(bind)发生时如何显示加载图形/动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2114264/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com