我在列表视图中显示许多行数据,这些行绑定到自定义类的列表。自定义类有一个名为type的属性。允许类型的数量是有限的,我想限制用户通过从组合框中选择进行更改。我尝试在基类中添加一个组合框,但在列表视图中没有显示为组合框。
答案 0 :(得分:0)
您需要使用DataTemplate。
网上有很多教程。
答案 1 :(得分:0)
在网上找到这个,似乎是开始使用DataTemplates的一个很好的起点。
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/749c8e84-3af3-4ec9-90b1-297d684025e7/
<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Window.Resources>
<XmlDataProvider x:Key="MyData" XPath="/Info">
<x:XData>
<Info xmlns="">
<Item ID="123" Catalog="Category1"/>
<Item ID="456" Catalog="Category2"/>
<Item ID="789" Catalog="Category3"/>
</Info>
</x:XData>
</XmlDataProvider>
<CollectionViewSource x:Key='src' Source="{Binding Source={StaticResource MyData}, XPath=Item}" />
</Window.Resources>
<Grid>
<ListView Name="mylist" ItemsSource="{Binding Source={StaticResource src}}">
<ListView.View>
<GridView>
<GridViewColumn Header="Catalog" Width="100">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ComboBox Name="mycombo" SelectedValue="{Binding XPath=@Catalog}">
<ComboBoxItem>Category1</ComboBoxItem>
<ComboBoxItem>Category2</ComboBoxItem>
<ComboBoxItem>Category3</ComboBoxItem>
</ComboBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="ID" Width="100" DisplayMemberBinding="{Binding XPath=@ID}" />
</GridView>
</ListView.View>
</ListView>
</Grid>