2010-03-11 96 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

相關問題