绑定到一些嵌入的对象属性

时间:2013-04-10 02:18:39

标签: c# wpf binding

我有一辆汽车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" />

有关如何操作的任何想法?谢谢!

1 个答案:

答案 0 :(得分:2)

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

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