我前PHP開發人員現在做WPF/C#應用程序,和我無法理解訪問全局變量和用戶控件如何訪問主窗口的最佳方式等將全局信息存儲在WPF應用程序中的最佳位置在哪裏?
在我的窗口1 I類的構造函數將UserControls加載到內部字典中,然後在運行時動態地將它們加載到DockPanel中,這很好,並保持每個內部狀態。
public Window1()
{
InitializeComponent();
List<string> userControlKeys = new List<string>();
userControlKeys.Add("Welcome");
userControlKeys.Add("News");
Type type = this.GetType();
Assembly assembly = type.Assembly;
foreach (string userControlKey in userControlKeys)
{
string userControlFullName = String.Format("{0}.Pages.{1}", type.Namespace, userControlKey);
UserControl userControl = (UserControl)assembly.CreateInstance(userControlFullName);
_userControls.Add(userControlKey, userControl);
}
//set the default page
btnWelcome.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
}
問題:從用戶控件中如何訪問我的字典在窗口1?
- 我可以訪問靜態類Window1但不是它的實例化,因此使它的Getter不會讓我更進一步。
- 在C#中有全局屬性,但我可以想象有一個更好的,更多的OOP方式
- 它看起來就像我在網站/會話變量方面看到的,因此缺少桌面的關鍵概念「國家無處不在」的發展
希望有人可以對此有所瞭解。
有對窗口類名爲GetWindow返回到父窗口的引用一個靜態方法: 窗口1 WND = Window.GetWindow(此)作爲Window1; – 2009-02-20 15:13:39