2015-01-02 60 views
2

我有這個類:WPF結合亞類的ListView

public class Car 
{ 
    public struct CarType 
    { 
     public string Manufacturer { get; set; } 
     public string Model { get; set; } 
     public int Year { get; set; } 
    } 

    public CarType Type; 
    public string LicenseNumber { get; set; } 
    public int Km { get; set; } 
} 

要綁定LicenseNumber或公里到我的列表視圖,我用:

<ListView.View> 
    <GridView> 
     <GridViewColumn Width="140" DisplayMemberBinding="{Binding LicenseNumber}"> 
      <GridViewColumn.Header> 
       <GridViewColumnHeader Click="GridViewColumnHeader_Click">License Number</GridViewColumnHeader> 
      </GridViewColumn.Header> 
     </GridViewColumn> 
    </GridView> 
</ListView.View> 

命令DisplayMemberBinding="{Binding LicenseNumber}"結合LicenseNumber財產。

但是如何綁定子類。像Type.Manufacturer? Type.Model?

回答

1

您可以綁定到屬性上的實例,以及(只需使用點符號,你已經很熟悉):

<TextBlock Text="{Binding Path=Type.Manufacturer}" /> 
+0

我使用的ListView不TextBlock中...... ListView控件不具有 「文本」 的屬性... – Nick

0

你可能從來沒有嘗試過。

<GridViewColumn Width="140" DisplayMemberBinding="{Binding Type.Manufacturer}"> 
+0

其實我試過了。它不會添加該列下的屬性。可能是因爲綁定不起作用。這個答案也適用於那些建議同樣解決方案的人。 – Nick

+0

那麼,你的Visual Studio輸出窗口中是否有綁定錯誤? – nvoigt

0

你應該使用下面的代碼:

<ListView.View> 
    <GridView> 
     <GridViewColumn Width="140" DisplayMemberBinding="{Binding Type.Manufacturer}"> 
      ...