【问题标题】:WPF ListView Combine 2 ore more columnsWPF ListView 组合 2 个或更多列
【发布时间】:2016-10-19 01:27:15
【问题描述】:

所以我在 XAML 中有我的列表视图:

<ListView Name="lstContacts">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="ID" DisplayMemberBinding="{Binding ID}"/>
            <GridViewColumn Header="Name" DisplayMemberBinding="{Binding FullName}"/>
        </GridView>
    </ListView.View>
</ListView>

然后我使用 LINQ 从数据库中提取联系人表并转换为列表。然后我将列表 ItemsSource 绑定到这样的表。

MyDatabaseDataContext dc = new MyDatabaseDataContext();
lstContacts.ItemsSource = dc.Contacts.ToList();

只要我可以绑定到特定列,例如我的表的“ID”或“FirstName”“LastName”,一切都可以正常工作。但我想将“FirstName”和“LastName”结合起来作为“FullName”绑定到一列。 我相信这很简单,有几种方法可以做到。 但是对于我的生活,我无法弄清楚。 任何帮助将不胜感激

【问题讨论】:

  • 顺便说一句,你没有绑定任何东西。那里没有Binding 的实例。您只是将某些内容分配给属性。无论如何,您想要的是一个模板列:stackoverflow.com/a/4725474/424129 - 只需在模板中放置一个 TextBlock,其中包含两个 TextBlock(您可以这样做),其中 firstname 绑定到一个,lastname 绑定到另一个。
  • @EdPlunkett 哦......对不起,我对这一切都很陌生,并且一直在 youtube 和这里​​等地教我自己。但感谢您的帮助!

标签: c# wpf linq


【解决方案1】:

你可以使用多重绑定:

 <GridViewColumn Header="Name" Width="120" >
      <GridViewColumn.CellTemplate>
           <DataTemplate>
                <TextBlock TextWrapping="Wrap" Width="385">
                      <TextBlock.Text>
                            <MultiBinding StringFormat="{}{0} {1}">
                                  <Binding Path="FirstName" />
                                  <Binding Path="LastName" />
                            </MultiBinding>
                      </TextBlock.Text>
                </TextBlock>
          </DataTemplate>
     </GridViewColumn.CellTemplate>
  </GridViewColumn>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 2013-10-13
    • 1970-01-01
    相关资源
    最近更新 更多