如何使用DisplayMemberPath显示特定列中的项目

时间:2010-01-26 22:56:16

标签: c# wpf xaml listview

我有一个包含多个GridViewColumns的ListView(Title,Start,Due)。那么如何使用字符串Title,datetime Start和datetime Due绑定一个对象。在程序代码中,我已经说过:

lvwFill.ItemsSource = assignments.ListAssignments(); //Returns a List<Assignments>

所以现在我的XAML是:

            <ListView x:Name="lvwFill">
            <ListView.View>
                <GridView>
                    <GridViewColumn x:Name="TitleColumn" Header="Title"  Width="125" />
                    <GridViewColumn x:Name="DueColumn" Header="Due"  Width="75" />
                    <!-- ... -->
                </GridView>
            </ListView.View>
        </ListView>

那么如何列出每个作业,并且只显示某些信息,如作业。标题或赋值.Due?

1 个答案:

答案 0 :(得分:4)

像这样使用DisplayMemberBinding

          <GridViewColumn
             Header="Title"
             DisplayMemberBinding="{Binding Path=Title}" />

          <GridViewColumn
             Header="Due"
             DisplayMemberBinding="{Binding Path=Due}" />

假设您已绑定到具有Title和Due属性的Assignments列表。

如果您希望使用复杂的值类型(不是字符串),请使用CellTemplate,它允许您使用数据模板,以便格式化/转换为您的心灵内容

        <GridViewColumn
            Header="Due">
            <GridViewColumn.CellTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Due, StringFormat={}{0:MM/dd/yyyy}}" />
                </DataTemplate>
            </GridViewColumn.CellTemplate>
        </GridViewColumn>