2010-03-11 91 views
1

我有WPF应用程序,我有一个主窗体和其他用户控件在主窗体中显示为子窗体。当我对数据库进行异步调用时,必须显示Busy栏。声明忙碌酒吧对象然后在每个小孩用户控件中使用的最佳方式是什么?我是否需要在主窗体中声明繁忙的栏对象,然后使用它的子用户控件或应用程序文件是最好的,或者有什么好方法。在WPF应用程序中显示繁忙条的最佳方式

回答

1

这取决于您的“忙碌酒吧”是出现在其他控件或窗口内部的控件,还是其自身的弹出窗口。

如果它是一个控件,您不能(容易地)在应用程序的多个位置使用单个控件实例。 WPF控件实例是可视和逻辑树的一部分。它不能成为两个视觉树的一部分。您可以可以创建一个BusyBar控件,并声明多个实例在您需要它的各个位置:要做到这一点,请使用Visual Studio中的用户控件(WPF)或自定义控件(WPF)模板。

如果是一个窗口,可以在应用程序启动时创建它,但将其隐藏。然后,您可以根据需要在代码中显示它(使用Show或ShowDialog方法)。也就是说,目前还不清楚为什么你需要这个成为一个单身人士。创建窗口很便宜,特别是与通过网络向数据库调用相比。再次,声明一个类,并在需要时创建和显示类的实例,将是更常用的方法。您可以轻松创建一个静态方法来封装“create-bind-show-wait-hide”循环,以免污染应用程序代码的细节。

+0

感谢您的建议,它真的有帮助。在我的情况下,我有用作繁忙栏的窗体,我是否需要在主窗体或App文件中声明对象。这是我的问题,在这两种情况下我如何访问该对象来显示和隐藏在主窗体或应用程序文件中声明的对象, 在前进中感谢 – 2010-03-11 07:50:53

+0

如果它是一个应用程序范围的资源,我会在应用程序中声明它级别,例如作为您要在OnStartup覆盖中进行初始化的App类的实例成员。然后你可以通过'((App)(Application.Current))。BusyBar'来访问它(并且可以将其封装为App类的一个静态属性或方法)。 – itowlson 2010-03-11 08:05:25

+0

感谢您的意见,这就是我要找的 非常感谢 – 2010-03-11 12:05:47

相关问题