获取绑定属性类中的其他属性

问题描述:

如果我得到了一个我绑定的嵌套类,那么如何检索该父类。例如,我已经绑定到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 = ????   
} 

只能绑定到SecondClass.ImageSource因为ImageDataContextFirstClass一个实例。所以在处理器中你只需要施放它:

private void Image_MouseUp_1(object sender, MouseButtonEventArgs e) { 
    FirstClass item = (sender as Image).DataContext as FirstClass; 
    //<Change item.SecondClass or do whatever you want> 
} 

你的数据对象或者需要知道它的父对象,或者您可以使用一个RelativeSourceElementName结合引用父对象。例如

<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>