2010-07-17 65 views
1

我試圖在需要綁定到枚舉列表(List<ResourceType> Cost)的GridViewColumn內部顯示ListBoxGridViewColumnListView已經綁定到一組對象,我不確定最好的方式去顯示ListBox。有什麼建議麼?顯示帶有列表枚舉的列表框

回答

1

您可以將ListBox綁定到枚舉值列表。一個簡單的方法是使用我發佈的標記擴展here

然後,您需要將ListBoxSelectedItem綁定到GridViewColumn中顯示的屬性。

您應該結束了這樣的事情:

<GridViewColumn Header="Resource type"> 
    <GridViewColumn.CellTemplate> 
     <DataTemplate> 
      <ListBox ItemsSource="{local:EnumValues local:ResourceType}" 
        SelectedItem="{Binding SelectedResourceType}"> 
     </DataTemplate> 
    </GridViewColumn.CellTemplate> 
</GridViewColumn> 

編輯:我想我誤解你的問題......如果我理解正確的話,在ListView顯示的每個對象都有一個Cost財產鍵入List<ResourceType>,對不對? (順便說一句,事實ResourceType是一個枚舉在這裏並不重要)。所以你只需要綁定ListBoxCost屬性:

<GridViewColumn Header="Resource type"> 
    <GridViewColumn.CellTemplate> 
     <DataTemplate> 
      <ListBox ItemsSource="{Binding Cost}"> 
     </DataTemplate> 
    </GridViewColumn.CellTemplate> 
</GridViewColumn> 
+0

你打我吧。你是對的。第一種解釋有點不合時宜,但你的編輯點擊了頭部。雖然好奇;爲什麼'ResourceType'是一個'enum'並不重要?是否因爲WPF自動調用所選'enum'上的'ToString()'方法並顯示它?感謝您的快速回答。 – SirBeastalot 2010-07-17 19:14:00

+0

是的,就是這樣。除非爲該類型定義了DataTemplate,否則將調用ToString以獲取該對象的表示形式 – 2010-07-17 21:05:37