这个例子是一个有点人为的做法,但我正在做类似的事情。比方说,我有以下简单的类:有没有一种简单的方法来指定WPF数据绑定的路径是哪一个“级别”?
public class Person
{
public string Name { get; set; }
public List<Alias> Aliases { get; set; }
}
public class Alias
{
public string AliasName { get; set; }
}
而且让我们说,我的XAML与LayoutRoot网格,一个DataGrid,我想访问的DataGrid 内的名称属性别名属性而不是像在这里的第二列:
<Grid x:Name="LayoutRoot" DataContext="PersonInstance">
<DataGrid ItemsSource="{Binding Aliases}">
<DataGrid.Columns>
<data:DataGridTextColumn Header="AliasName" Binding="{Binding AliasName, Mode=TwoWay}"/>
<data:DataGridTextColumn Header="Name" Binding="{Binding ../Name, Mode=TwoWay}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
这是直观的,我会试图绑定名称,但不用说,看起来很愚蠢。在指定路径时是否有类似的情况,或者您是否被迫获取相对源直至LayoutRoot数据上下文。如果你不得不,最有效的方法是什么?
为什么不能正常工作? 'Binding =“{Binding Name,Mode = TwoWay}”' – Amsakanna 2010-06-10 09:10:20
@Veer,因为类Alias中没有Name属性... – Anvaka 2010-06-10 14:25:40
@Anvaka:但datacontext设置了person类的实例。它应该知道Name属性。 – Amsakanna 2010-06-10 14:51:46