2009-12-16 37 views
0

我有一個分層編輯的UI問題,其中一組不同的工具需要可見,這取決於ComboBox選擇圖層並且在成語上燉一下使用。這些工具不應該放在可見的容器中。上下文相關的佈局 - 基於組合框改變WPF工具集的可見性

ComboBox選擇在ViewModel中綁定到一個簡單的整數屬性。

我一直在考慮替代圍繞在同一地點的一系列StackPanel容器大多是基於:

  1. 綁定StackPanel S'的知名度性質不同的視圖模型屬性每個,然後讓那些知名度屬性根據Combo的支持值進行計算。我將不得不添加一些進一步的通知,以確保它們在組合更改時刷新。
  2. 使用一個ValueConverter直接結合StackPanel s'的能見度特性到組合選擇
  3. StackPanel S IN每個TabItem S的一個TabControl和抑制報頭的任何繪圖,所以TabControl選擇可以被直接映射到組合選擇。
  4. 使用Selector的子類,或者只是模板化選擇器以獲得3的行爲,而不需要從TabControl收到任何行李。
  5. 我現在使用的方法 - 將Click處理程序添加到其可見性應該依賴的彈出窗口中,並根據彈出窗口的SelectedIndex簡單設置不同面板的可見性。非常古老,但簡單易用,遵循代碼。

回答

1

我投給了#1。我知道WPF純粹主義者會說這有點「老派」,並且有更好的方法來處理它。但有時你只需要一些舊功能的基本例子,KISS是最好的方法。