這個例子是一個有點人爲的做法,但我正在做類似的事情。比方說,我有以下簡單的類:有沒有一種簡單的方法來指定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