Ví dụ này là một thừa nhận một chút contrived nhưng tôi đang làm một cái gì đó tương tự. Hãy nói rằng tôi có các lớp học đơn giản sau đây:Có cách nào đơn giản để chỉ định một dữ liệu WPF nơi đường dẫn là một "cấp" lên không?
public class Person
{
public string Name { get; set; }
public List<Alias> Aliases { get; set; }
}
public class Alias
{
public string AliasName { get; set; }
}
Và chúng ta hãy nói rằng tôi có XAML với một mạng lưới LayoutRoot, và một DataGrid nơi tôi muốn truy cập thuộc tính Name trong DataGrid thay các thuộc tính biệt hiệu như trong cột thứ hai ở đây:
<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>
Đó là cách trực quan cách tôi cố gắng ràng buộc tên, nhưng không cần phải nói rằng có vẻ ngu ngốc. Có một cái gì đó như thế khi xác định một con đường, hoặc là bạn buộc phải có được một nguồn tương đối lên đến bối cảnh dữ liệu LayoutRoot. Nếu bạn phải, cách hiệu quả nhất là gì?
Tại sao tính năng này không hoạt động? 'Binding =" {Binding Name, Mode = TwoWay} "' – Amsakanna
@Veer, bởi vì không có thuộc tính Tên trong lớp Bí danh ... – Anvaka
@Anvaka: Nhưng datacontext được đặt thể hiện của lớp người. Nó sẽ biết thuộc tính Name. – Amsakanna