如果我有一个我绑定的嵌套类,我怎么能检索那个父类。例如,我已绑定到SecondClass.ImageSource。我现在想要在单击图像时获取SecondClass的信息,我该如何实现?
我想更改SecondClass属性,但问题是我有一个相同图像项的网格。
图像的绑定已经有效。
的Xaml:
<Image Source="{Binding Path=SecondClass.ImageSource}" Width="48" Height="48" MouseUp="Image_MouseUp_1" />
代码:
public class FirstClass {
public int number { get; set; }
public SecondClass SecondClass
}
public class SecondClass {
public ImageSource ImageSource { get; set; }
}
private void Image_MouseUp_1(object sender, MouseButtonEventArgs e) {
FirstClass item = ????
}
答案 0 :(得分:1)
您只能绑定到SecondClass.ImageSource
,因为DataContext
的{{1}}是Image
的实例。所以在处理程序中你只需要转换它:
FirstClass
答案 1 :(得分:0)
您的数据对象需要知道它的父对象,或者您可以使用RelativeSource
或ElementName
绑定来引用父对象。例如
<Window x:Name="RootWindow" DataContext="{Binding FirstClass}">
<Grid DataContext="{Binding SecondClass.SomeProperty}">
<!-- Binding using ElementName -->
<Button Context="{Binding ElementName=RootWindow,
Path=DataContext.SecondClass}" />
<!-- Binding using RelativeSource -->
<Button Context="{Binding RelativeSource=
{RelativeSource AncestorType={x:Type Window}},
Path=DataContext.SecondClass}" />
</Grid>
</Window>