1
我試圖在需要綁定到枚舉列表(List<ResourceType> Cost
)的GridViewColumn
內部顯示ListBox
。 GridViewColumn
的ListView
已經綁定到一組對象,我不確定最好的方式去顯示ListBox
。有什麼建議麼?顯示帶有列表枚舉的列表框
我試圖在需要綁定到枚舉列表(List<ResourceType> Cost
)的GridViewColumn
內部顯示ListBox
。 GridViewColumn
的ListView
已經綁定到一組對象,我不確定最好的方式去顯示ListBox
。有什麼建議麼?顯示帶有列表枚舉的列表框
您可以將ListBox
綁定到枚舉值列表。一個簡單的方法是使用我發佈的標記擴展here。
然後,您需要將ListBox
的SelectedItem
綁定到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
是一個枚舉在這裏並不重要)。所以你只需要綁定ListBox
到Cost
屬性:
<GridViewColumn Header="Resource type">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ListBox ItemsSource="{Binding Cost}">
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
你打我吧。你是對的。第一種解釋有點不合時宜,但你的編輯點擊了頭部。雖然好奇;爲什麼'ResourceType'是一個'enum'並不重要?是否因爲WPF自動調用所選'enum'上的'ToString()'方法並顯示它?感謝您的快速回答。 – SirBeastalot 2010-07-17 19:14:00
是的,就是這樣。除非爲該類型定義了DataTemplate,否則將調用ToString以獲取該對象的表示形式 – 2010-07-17 21:05:37