Este ejemplo es ciertamente un poco artificial, pero estoy haciendo algo similar. Digamos que tengo las siguientes clases simples:¿Existe una manera simple de especificar un enlace de datos WPF donde la ruta tiene un "nivel" alto?
public class Person
{
public string Name { get; set; }
public List<Alias> Aliases { get; set; }
}
public class Alias
{
public string AliasName { get; set; }
}
Y vamos a decir que no tengo Xaml con una rejilla LayoutRoot, y una cuadrícula de datos en la que desee acceder a la propiedad Name dentro de la cuadrícula de datos lugar de las propiedades Alias como en la segunda columna aquí:
<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>
eso es intuitivamente cómo iba a tratar de unir el nombre, pero no hace falta decir que se parece estúpida. ¿Hay algo así cuando se especifica una ruta, o se ve obligado a obtener una fuente relativa hasta el contexto de datos de LayoutRoot. Si es necesario, ¿cuál es la forma más eficiente?
¿Por qué no funciona? 'Binding =" {Binding Name, Mode = TwoWay} "' – Amsakanna
@Veer, porque no hay propiedad Name en la clase Alias ... – Anvaka
@Anvaka: Pero el contexto de datos se establece como la instancia de la clase de persona. Debe saber la propiedad Nombre. – Amsakanna