2015-01-02 31 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}"> 
      ...