【发布时间】:2018-03-20 17:56:23
【问题描述】:
我有以下课程:
class Event {
int eserc {get;set;}
int type {get;set;}
}
class Sequence {
List<Event> events;
int freq {get;set;}
}
如您所见,我有一个序列内的事件列表。我有一个序列列表。
我想显示一个带有序列列表的 GridView 的 ListView。对于每个序列,我希望有 2 列,其中一列具有属性 freq 的值,另一列应具有与该序列关联的事件列表。例如:
其中第一行与第一个序列有关。矩形的颜色代表事件的类型。在第一个序列中有以下事件:
- “红色”类型的 eserc 1
- “红色”类型的 eserc 2
- “绿色”类型的 eserc 3
- “红色”类型的 eserc 4
我知道我必须进行绑定以显示值,但我不知道如何对序列进行绑定,因为我应该将列的值绑定到 Event 的值 每个单个 Sequence 中的对象。
这是我为 ListView 编写的代码:
<ListView Name="resultsList" Grid.Row="5" Grid.Column="1"
Grid.ColumnSpan="3">
<ListView.View>
<GridView>
<GridViewColumn Header="Sequence" Width="450"
DisplayMemberBinding="{Binding events}"/>
<GridViewColumn Header="Frequence"
DisplayMemberBinding="{Binding freq}"/>
</GridView>
</ListView.View>
</ListView>
当然,Binding events 是错误的,因为只有当它是一个字符串时才会起作用,但这就是想法。
我在互联网上搜索,我认为我应该使用 DataTemplate 之类的东西,但我不确定,我不太了解它是如何工作的。我知道当源是一个对象时它可以工作,但在这种情况下它是一个对象的List,我不知道如何获取信息。
【问题讨论】:
-
使用 DataTemplate 在第一列的单元格中显示嵌套列表(阅读 GridViewColumn.CellTemplate 的文档,有关使用 CellTemplate 属性的示例,请参见此处:stackoverflow.com/questions/4725352/…)
-
哦,您可以使用 DataTrigger 实现的着色根据 DataTrigger 绑定到的属性的值改变颜色 (wpf-tutorial.com/styles/trigger-datatrigger-event-trigger)
-
最后,+1 表示您问题的出色表现,包括一个涂鸦,让您可以轻松理解您的目标是什么。希望人们会更多地支持格式良好的问题,而不仅仅是反对写得不好、费力的问题。
-
我只记得我忘了添加一件事:“我知道当源是一个对象时它可以工作,但在这种情况下它是一个对象列表,我不知道如何获取信息。”。哦,你已经知道了。看,您已经知道如何使用 ListBox/ListView 显示 List
:。那么,您将如何在列单元格中显示您的 List ?是的,你猜对了;再次,使用 ListBox/ListView... ;-) -
有多少项目可以包含
events?
标签: c# wpf listview data-binding