2010-08-04 41 views
5

我正在開發一個WPF應用程序,試圖更好地理解它是什麼以及它可以做什麼。我有一種情況,雖然我不知道如何最好地實現,基本上我的UI需要根據用戶選擇而改變。如何實現WPF動態UI

本質上,我希望建立一套'ConditionRows',其中用戶指定'Field'和'Condition'以及'Style'以在條件匹配時使用。我想象的佈局與下面的類似。

alt text http://img63.imageshack.us/img63/1813/39321945.jpg

我需要做的是改變什麼顯示在「控制1」(一個文本框,或2個文本框和一個標籤,或無)和「控制2」(兩者綁定組合框,數字上/下,顏色選擇器)。我不太確定儘可能動態更改這些控件並儘可能保持代碼/ xaml分離的最佳方式。

回答

3

如果您在做MVVM,可以爲每個控制區域創建ViewModel的ViewModel主視圖模型(即IControlGroupViewModel,以及每個可能的控件分組的具體ViewModel)的多態屬性。然後,您可以爲資源字典中的每個具體類型創建一個數據模板。如果將視圖綁定到多態屬性,則應在運行時選擇正確的數據模板。