我有WPF应用程序,我有一个主窗体,其他用户控件在主窗体中显示为子窗体。当我对数据库进行异步调用时,我必须显示忙碌栏。声明Busy bar对象然后在每个子用户控件中使用的最佳方法是什么。我是否需要在主窗体中声明忙条对象,然后使用子用户控件或应用程序文件是最好的,或者有什么好方法。
答案 0 :(得分:1)
这取决于你的“忙碌栏”是否是一个出现在其他控件或窗口内的控件,或者它本身就是一个弹出窗口。
如果它是一个控件,你不能(轻松地)在应用程序的多个位置使用单个控件实例。 WPF控件实例是可视化和逻辑树的一部分。它不能是两棵视觉树的一部分。您可以创建一个BusyBar控件类,并在您需要的各个位置声明多个实例:为此,请使用用户Visual Studio中的控件(WPF)或自定义控件(WPF)模板。
如果它是一个窗口,您可以在应用程序启动期间创建它,但将其隐藏起来。然后,您可以在需要时从代码中显示它(使用Show或ShowDialog方法)。也就是说,不清楚为什么你需要这个单身人士呢。创建窗口很便宜,特别是与通过网络到数据库的调用相比。同样,声明一个类,并在需要时创建和显示类的实例,将是更常用的方法。您可以轻松创建一个静态方法来封装“create-bind-show-wait-hide”循环,以免污染您的应用程序代码。