我已經實現了一個擴展幫助器來動態地將WPF usercontrol加載到窗口。 (MyButton在另一個程序集中)。反射成本:WPF
該幫助程序位於我的所有項目中使用的類庫中。這個想法是爲了節省重新編碼這個操作,並保持客戶端代碼更清潔。
我想第二雙眼睛(或更多)讓我知道,如果這個成本太高。
謝謝。
public static Window OpenUserControl(this MyButton button, string controlName, string title)
{
//
object uControl;
try
{
Type newType = button.GetType().Assembly.GetType(controlName,true,true);
uControl = Activator.CreateInstance(newType);
}
catch (Exception e)
{
throw;
}
// launch the usercontrol as a window.
Window form = new Window
{
Title = title,
Content = uControl,
ShowInTaskbar = false
};
return form;
}
你*有*是否按名稱傳遞控件類型?任何理由你不只是接受它作爲'Type',或者甚至使它通用?你絕對不應該有這個嘗試/抓塊 - 這只是一個蹩腳的問題。 –
似乎是一個很好的主題http://codereview.stackexchange.com/ –
我無法想象,你打開這麼多窗口,這將是至關重要的。如上所述,您可能可以改進它,但反射方面不是問題。 – Jay