假設您有一個xaml頁面,它接受兩個輸入,例如DATE和一些TEXT值,並將結果顯示在DataGrid上,它很容易擁有帶有3個dataTypes屬性的類DateTime ,字符串和一些集合,並在MVVM中實現相同。帶有動態輸入控件的Silverlight頁面的MVVM
我有一個xaml頁面,帶有一個DataGrid和幾個輸入控件(如文本框或日期選擇器),它們根據特定條件動態生成。我想在MVVM模式中實現這一點,但不知道如何去做。任何指針都會有幫助。
假設您有一個xaml頁面,它接受兩個輸入,例如DATE和一些TEXT值,並將結果顯示在DataGrid上,它很容易擁有帶有3個dataTypes屬性的類DateTime ,字符串和一些集合,並在MVVM中實現相同。帶有動態輸入控件的Silverlight頁面的MVVM
我有一個xaml頁面,帶有一個DataGrid和幾個輸入控件(如文本框或日期選擇器),它們根據特定條件動態生成。我想在MVVM模式中實現這一點,但不知道如何去做。任何指針都會有幫助。
根據我的經驗,MVVM不適用於所有演示場景,有時您只需使用代碼隱藏或構建自定義控件。我會建議在這裏建立自定義控件,它需要(與依賴屬性綁定)對象或對象列表,並生成控件(帶有輸入驗證/驗證的文本框,用於整數,雙打,日期選擇器等),並將給定的對象綁定到它們。最後,您將擁有一個智能控件,它接收對象並呈現輸入字段,並綁定到它們。你的VM類只會暴露對象或對象列表。
它是總是好的來分隔視圖和模型;然而,這不能總是通過簡單類型的簡單數據綁定來完成。
當「spec」是要使用的邏輯控件類型時,我會查看類似自定義控件的事情,該控件可以將數據綁定到{name,value,spec}對列表。
思考它;這就像是一個屬性網格所做的一樣,如果你將它傳遞給一個屬性描述符的自定義集合。
Devexpess有一個「垂直網格」,可以幫助,也看看第三方屬性網格。