0
我有構成這樣的組合框:鑄造他人財產的MVVM
public class PersonDataQueryField
{
public string FriendlyName { get; set; }
public IList<string> XPaths { get; set; }
public Type DataType { get; set; }
}
這個類的列表存在於我的視圖模型,並綁定到一個組合框,與DisplayMemeberPath=FriendlyName
。我在我的視圖中有幾個DataTemplates
,這將根據Combobox
中選定的DataType
來觸發,以填充ContentControl
。在此組合框的右側存在TextBox
,用戶可以在其中輸入SearchQuery。 Text
屬性類型爲object
,並且當用戶按下「搜索」時將被輸出到SelectedPersonDataQueryField.DataType
。
var searchQuery = (SelectedSearchQueryParameter.DataType) SearchQuery;
這因爲SelectedSearchQueryParameter
是不允許的是Property
而不是Type
,但DataType
是Type
。我怎樣才能做到這一點?
事後你會怎麼做('searchQuery')?轉換的重點通常是允許您在隨後的代碼中使用該類型的某些成員 - 如果您不知道在編譯時它是什麼類型,那麼您將嘗試使用哪些成員? –
如果使用可以評估TextBox內容的DataTemplateSelector並切換相關模板,這會不會更好?或者,正如@JonSkeet所問,你是否需要在轉換的DataType上使用特定的成員? – olitee
'searchQuery'變量應該被髮送到一個'facade',它可以接受任何類型,進一步到'repository',最後到一個WCF服務。我可能需要重新考慮設計.. –