2013-08-16 46 views
0

我想創建一個ListBox並填寫匿名UIElement。換句話說,ItemTemplateDataTemplate將只包含一個元素,並且在運行期間的後綴中,之後我將在代碼後面創建不同的UIElementTextBlock s,Grid s ...),並用它填充列表。匿名UIElements列表框

那麼我該怎麼寫ListBoxDataTemplate?我打算如何使用ObservableCollection作爲ItemSource?那麼應該使用UIElementObsevableCollection

+0

不建議擁有包含任何UI元素的列表。引入一些模型視圖分離,例如MVVM。 –

回答

2

第一個問題:DataTemplate。由於您的物品已經是UIElement s,因此您不需要DataTemplate

如果你正在創建一個可更改的集合,那麼是的,ObservableCollection<UIElement>是要走的路。

現在,爲什麼你會這樣做嗎?你可能想問自己這是否是最好的做事方式。爲什麼您的數據和演示文稿不是分開的?如果您需要列表中有多種類型的元素,DataTemplateSelector是否允許您有真正的ViewModel

+0

我想要的是包含TextBlocks的TextBlocks和Grids的列表。然後我想要使用,以便用戶可以單獨標記和編輯每個文本塊,並且在此之前,根據用戶選擇填充列表,然後根據用戶選擇網格先到達還是TextBlock。 –

+0

好吧,聽起來你應該使用'DataTemplateSelector'。你可以在ListBox中分配'ItemTemplateSelector'。 –

0
<ListBox x:Name="name" ItemsSource="{Binding source}"> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <textbox x:Name="name"></ToggleButton> //or any tool 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox>