我有一辆汽车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" />
有关如何操作的任何想法?谢谢!
答案 0 :(得分:2)
使用虚线路径时,需要明确指定Path
关键字。这应该有效:
<DataGridTextColumn Header="Logo Name" Binding="{Binding Path=Brand.LogoName}" IsReadOnly="True" />