2010-07-17 56 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