2011-09-28 112 views
0

如果我得到了一個我綁定的嵌套類,那麼如何檢索該父類。例如,我已經綁定到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 = ????   
} 

回答

1

只能綁定到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> 
} 
0

你的數據對象或者需要知道它的父對象,或者您可以使用一個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>