【问题标题】:How to bind from DataTemplate to the GridViewColumns item如何从 DataTemplate 绑定到 GridViewColumns 项
【发布时间】:2014-01-23 10:48:07
【问题描述】:

我有一个ListViewDataTemplateResources 中定义。我想将GridViewColumn 的内容转发到DataTemplate,以便DataTemplate 可以重复用于多个GridViewColumns。我有一个名为Property1 的属性,我想将其绑定到GridViewColumn,然后将其转发到DataTemplate,它将显示在TextBlock 中。但是,GridViewColumn 没有我可以绑定到的任何 Content 属性。

这是一个精简的代码:

<ListView>

  <ListView.Resources>
    <DataTemplate x:Key="PropertyTemplate>
      <TextBlock Text"{Binding}" />
    <DataTemplate>
  </ListView.Resources>

  <ListView.View>
    <GridView>
      <!-- No Content property in GridViewColumn -->
      <GridViewColumn CellTemplate="{StaticResource PropertyTemplate}" Content={Binding Property1} />
    <GridView>
  </ListView.View>

</ListView>

如何将绑定的属性从 GridViewColumn 转发到 GridViewColumn 的 DataTemplate?

【问题讨论】:

    标签: c# wpf xaml listview datatemplate


    【解决方案1】:

    更新:

    这应该可行:

    <ListView ItemsSource="{Binding Items}">
        <ListView.Resources>
            <DataTemplate x:Key="PropertyTemplate">
                <TextBlock Text="{Binding Property1}" />
            </DataTemplate>
        </ListView.Resources>
        <ListView.View>
            <GridView>
                <GridViewColumn CellTemplate="{StaticResource PropertyTemplate}"  />
            </GridView>
        </ListView.View>
    </ListView>
    

    上一个答案(不起作用): 使用 DisplayMemberBinding 属性。您可能还想为您的列设置标题文本:

    <GridView>
          <GridViewColumn CellTemplate="{StaticResource PropertyTemplate}" DisplayMemberBinding={Binding Property1} Header="Some column"/>
    </GridView>
    

    您还需要在 ListView 上设置 ItemsSource。

    【讨论】:

    • 这不起作用,因为设置 DisplayMemberBinding 会覆盖 DataTemplate。
    • 啊,好的。您是否尝试过在 DataTemplate 中指定属性名称:
    • 你当然需要先在 ListView 上指定 ItemsSource。
    • 是的,我已经指定了 ItemsSource。也做 工作但 DataTemplate 不知道它将链接到哪个属性,这就是为什么我需要将它绑定到 GridViewColumn 然后转发它。
    • 我刚试了下,没问题。 DataTemplate 不需要知道您要绑定什么,绑定将在运行时解析。你有错误吗?
    猜你喜欢
    • 1970-01-01
    • 2015-06-27
    • 2012-01-01
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 2011-12-09
    • 1970-01-01
    • 2012-07-01
    相关资源
    最近更新 更多