是否可以獲取對象的類型並將其動態設置爲對象。我有幾個的ViewModels,所有包含相同的屬性,並希望做這樣的事情獲取對象的類型並將其動態設置爲對象
if (this.DataContext is CamerasViewModel)
{
//Type type = Type.GetType((this.DataContext.ToString());
object o = Assembly.GetExecutingAssembly().CreateInstance(this.DataContext.GetType().ToString());
Type type = o.GetType();
foreach (ButtonViewModel button in (this.DataContext as type).Buttons)
{
if (button.DisplayName == this.Content.ToString())
{
this.Template = (ControlTemplate)this.FindResource(button.TemplateResource.Substring(0, button.TemplateResource.Length - 3) + "pr");
break;
}
}
}
與其說this.DataContext作爲CamerasViewModel我想說this.DataContext作爲THEDYNAMICTYPE
任何建議嗎?
不,你不能。如果你做了,你的下一步會是什麼?此外,你已經做了靜態檢查。我不明白你爲什麼會遇到問題。 – leppie 2012-08-04 18:48:23
你想在這裏完成什麼?由於你的第一個「if」語句,你已經知道this.DataContext是一個CamerasViewModel。你只是試圖在ButtonViewModel的集合叫做「按鈕」的任何對象上設置button.DisplayName? – 2012-08-04 18:50:17
問題是泰迪厄斯其他所有其他類型的ViewModels。但根據你的評論,看起來像不可能。 Activator.CreateInstance什麼都不會滿足? – bl4kh4k 2012-08-04 18:50:27