Этот пример, по общему признанию, немного надуманный, но я делаю что-то подобное. Скажем, у меня есть следующие простые классы:Есть ли простой способ указать привязку данных 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
@Veer, потому что в классе Alias нет свойства Name ... – Anvaka
@Anvaka: Но в datacontext задан экземпляр класса person. Он должен знать свойство Name. – Amsakanna