我正在WPF中重写.Net WinForm应用程序。
我需要重现一个包含3列的ListView控件。
此列表视图会刷新其内容(包括控件类型),具体取决于上面选择的内容。
不幸的是我是WPF的新手。我一直在研究WPF ListView和绑定过程。但我的直觉反应是,这不是一个具有约束力的场景(尽管我很高兴被证明是错误的)。
所以我的问题是WPF ListView可以显示每行不同的控件类型吗?如果是这样,怎么样?
非常感谢,马特。
答案 0 :(得分:1)
这是一个TextBlock和CheckBox
<ListView.View>
<GridView AllowsColumnReorder="False" x:Name="gvWFbatches">
<GridViewColumn Width="Auto">
<GridViewColumnHeader Content="Batch"/>
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock TextWrapping="NoWrap" Text="{Binding Path=BatchName, Mode=OneWay}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="Auto">
<GridViewColumnHeader Content="QC"/>
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Path=IncQC, Mode=OneWay}" IsHitTestVisible="False" Focusable="False"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
答案 1 :(得分:1)
也许对某人有用。
我认为在这种情况下可以使用DataTemplateSelector。您应该定义自己的选择器
继承自DataTemplateSelector类,并根据项目放置逻辑使用的模板。然后将其设置为ListView的ItemTemplateSelecto。
可以从here
中读取有关DataTemplateSelector的详细信息答案 2 :(得分:0)
查看GridView
或DataGrid
。您需要手动指定列类型,而不是依赖于自动生成的列