我正在尋找一種在Silverlight中每次顯示一個項目集合的好方法,而不顯示用於選擇項目的UI。這就像沒有選項卡的TabControl,或者沒有下拉選項的組合框。Silverlight ItemsControl一次顯示一個項目?
現在我們正在使用TabControl樣式來隱藏標籤,但感覺就像是黑客。 Silverlight中有更自然的方法嗎?
下面是我在尋找的特徵:
- 僅顯示選定的項目。
- 不要顯示用於選擇項目的UI。 (選擇將根據用戶在應用UI的不同部分中的操作而改變。)
- 數據綁定到視圖模型的集合。
- 使用DataTemplate顯示每個視圖模型的視圖。
- 保留每個選定項目的視圖狀態。 (例如,假設在我們的一次一個項目控件中,我們顯示了選定項目的選項樹,我希望爲每個項目分別跟蹤樹節點的展開/摺疊狀態。)
我剛剛使用綁定到所選項目的ContentPresenter嘗試:
<ContentPresenter Content="{Binding SelectedItem}">
<ContentPresenter.ContentTemplate>
<DataTemplate>
<MyUserControl />
</DataTemplate>
</ContentPresenter.ContentTemplate>
</ContentPresenter>
但這似乎使用的MyUserControl的單個實例,重新綁定同一個實例,以不同的ViewModels爲的SelectedItem變化。這意味着狀態,例如是否擴展樹節點,不會根據選定的項目單獨跟蹤。
有沒有更好的方法來做到這一點?
感謝您的幫助,
理查德
謝謝!我將首先嚐試這種方法。我有Blend,但是我對Blend的瞭解只能擴展到複製控件模板。我會嘗試一下 :)。 –