不知道如何比一个例子更好地说出这个。考虑我有两个班级。
public class Person {
public Hair Hair { get; set; }
}
public class Hair {
public string Color { get; set; }
}
我还有一个列表框(MyListBox),其ItemSource是Person的列表。
现在我有一个需要显示所选列表项的文本块。我希望能够将SelectedItem强制转换为Person,以便文本框可以显示Hair Color。
我可以像这样设置datacontext到Hair属性(这样可以):
DataContext="{Binding ElementName=MyListBox, Path=SelectedItem.(local:Person.Hair)}"
Text="{Binding Color}"
但我真正喜欢的是将其作为Person转换为DataContext,如下所示(它不起作用):
DataContext="{Binding ElementName=MyListBox, Path=SelectedItem.(local:Person)}"
Text="{Binding Hair.Color}"
如何将SelectedItem转换为XAML中的Person?