對於來自Delphi世界的WPF,我很新。我在Delphi世界的下面解決了這個問題(儘管很痛苦),希望WPF世界有一個更優雅的解決方案。按名稱訪問窗口
我需要讀取一個XML文件,其中包含菜單「tree」,其中包含窗口名稱以及菜單提示,然後能夠根據其名稱「顯示」窗口。
例如,菜單的部分,有兩個選擇,可能有這樣的XML:
<MenuLeaf>
<Header>Product information</Header>
<MenuLine>
<Prompt>Product Master File</Prompt>
<WindowName>Products.xaml</WindowName>
</MenuLine>
<MenuLine>
<Prompt>Inventory Data</Prompt>
<WindowName>Inventory.xaml</WindowName>
</MenuLine>
</MenuLeaf>
因此,當用戶使得「庫存數據」的選擇,我就知道我想幹什麼一個「顯示」窗口Inventory.xaml .....但我只有字符串「Inventory.xaml」。
我將有數百個這樣的形式,而XML文件可以改變不時 - 所以對我來說,有
Dim window as New Inventory
window.Show
標準代碼爲每個幾百個窗口是不能奏效的。
我需要的是什麼,做
Dim window as New {go out and find the Inventory file with name Inventory.xaml}
window.Show
我尋覓不休這個沒有運氣。
我同意這一點;但是你應該可以使用Activator.CreateInstance(type);而不是在尋找這種方法時感到煩惱。喜歡的東西:VAR贏=(窗口)Activator.CreateInstance(<獲取大會> .GetType(); –
Adam
2012-01-31 22:46:51
肯定是一個簡短的表達方式:-) – GameAlchemist 2012-01-31 22:52:00