0

我有一辆汽车IEnumerable

public IEnumerable<ICars> Cars { get; private set; }

对象“Car”实际上包含对另一个 Ibrand 类型对象的引用:

public interface ICar
{
    // Parent brand accessor
    IBrand Brand { get; set; }

    // Properties
    int CarId { get; set; }
    string CarName { get; set; }
}

Ibrand 接口有一些属性:

public interface IBrand
{
    // Properties
    string LogoName { get; set; }
    string Sector { get; set; }
}

我将此 Cars IEnumerable 绑定到 DataGrid -这非常好

<DataGrid Name="Cars"
          ItemsSource="{Binding}"
          SelectedItem="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}, AncestorLevel=2}, Path=SelectedCar, Mode=TwoWay}">
  <DataGrid.Columns>
    <DataGridTextColumn Header="Car Id"
                        Binding="{Binding CarId}"
                        IsReadOnly="True" />
    <DataGridTextColumn Header="Car Name"
                        Binding="{Binding CarName}"
                        IsReadOnly="True" />
  </DataGrid.Columns>

我的问题是我也想绑定品牌的一些属性(所有汽车通用),例如徽标。这个合成器虽然不起作用

<DataGridTextColumn Header="Logo Name"
                    Binding="{Binding Brand.LogoName}"
                    IsReadOnly="True" />

关于如何做到这一点的任何想法?谢谢!

4

1 回答 1

2

当您使用虚线路径时,您需要Path明确指定关键字。这应该有效:

<DataGridTextColumn Header="Logo Name" Binding="{Binding Path=Brand.LogoName}" IsReadOnly="True" />
于 2013-04-10T02:25:33.650 回答