2011-01-21 57 views
-1

如何覆蓋第一內堆疊面板數據上下文...所以that..I可以參考類性質的如何覆蓋堆棧面板中的數據上下文?

Class A 
    { 

    public B b; 

    } 

    Class B 
    { 
    } 

    <stack panel DataContext = b > 
     <stack panel> 
     // HEre I use properties from class A 
     </stack panel> 
     <stack panel> 
     // HEre I use properties from class B 
     </stack panel> 
     <stack panel> 
     // HEre I use properties from class B 
     </stack panel> 
     <stack panel> 
     // HEre I use properties from class B 
     </stack panel> 
    </stack panel> 

回答

0

夫婦的取決於你的類實際上是如何設置的方式。

  1. 創建引用對象的父類的關聯屬性。如果B類是A類的子類,那麼在B類中可以有一個屬性指向哪個A對象包含它。當你的DataContext設置在你的頂層stackpanel中時,你的第一個孩子可以擁有類似於DataContext =「{Binding Parent}」的地方,其中parent是引用ClassA的屬性。

  2. 只需設置你的DataContext在頂層的StackPanel到ClassA的結合,讓它空白的第一個孩子,並將其設置爲你的b屬性對於每個連續的StackPanel。

請讓我知道,如果我明白你的權利。我可能需要更多關於您的計劃和問題的背景。

此外,最好複製/粘貼真實代碼,而不是像你一樣輸入。實際的代碼通常會給問題提供更好的背景。

+0

無論你給出的答案是什麼......我沒關係(我已經使用了第二種方法)。但我想要一個更好的解決方案,是我發佈這個問題。我正在使用單位......並在xaml文件中爲給定視圖映射視圖模型。並且該視圖模型是類A.而在類A中,我擁有類型B的屬性。如果我在B中具有類型A的屬性,它將解決probem。但我的問題是,我們是否有類似於「C#文件中的這個」的東西,我們可以在XAML中使用?以便「this」指向當前視圖模型。 – Relativity 2011-01-21 19:32:21

3
Class A 
    { 

    // B Should b a property 
    public B B{get; set;}; 

    } 

    Class B 
    { 
    } 

    <!-- Set A's Context here --> 
    <StackPanel DataContext=A> 
     <StackPanel> 
     // HEre you use properties from class A 
     </StackPanel> 

     <StackPanel DataContext={Binding Path=B}> 
     // HEre you use properties from class B 
     </StackPanel> 

     <StackPanel DataContext={Binding Path=B}> 
     // HEre you use properties from class B 
     </StackPanel> 

     <StackPanel DataContext={Binding Path=B}> 
     // HEre you use properties from class B 
     </StackPanel> 
    </StackPanel>