2014-01-23 57 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

相關問題