2014-01-23 56 views
0

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

这里是一个精简代码:

<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中转发的绑定属性?

回答

0

更新:

这应该工作:

<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> 

您还需要设置的ItemsSource您的ListView。

+0

这不起作用,因为设置DisplayMemberBinding会覆盖DataTemplate。 –

+0

啊,好的。您是否尝试过在DataTemplate中指定属性名称: Fayilt

+0

您需要首先在ListView上指定ItemsSource。 – Fayilt

相关问题