2012-03-15 11 views
9

में पैरेंट मान कैसे प्राप्त करें I dataTemplate का उपयोग कर रहा हूं। यह टेम्पलेट है:मल्टीबाइंडिंग

<ItemsControl ItemsSource="{Binding RAM.Partitions}"> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <Grid> 
        <TextBlock Text="{Binding Position, StringFormat={}{0}k}"/> 
        <Grid Grid.Column="1"> 
         <Border> 
          <Border.Height> 
           <MultiBinding Converter="{StaticResource MultiplyConverter}"> 
            <Binding ElementName="LayoutRoot" Path="ActualHeight"/> 
            <Binding Path="Size" /> 
            <Binding Path="RAM.Size" /> 
           </MultiBinding> 
          </Border.Height> 
         </Border> 
        </Grid> 
       </Grid> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 

क्या आप यह लाइन देख सकते हैं?

<Binding Path="RAM.Size" /> 

कि लाइन मुझे एक अपवाद फेंकता है, यह होना चाहिए क्योंकि RAM.Size एक माता पिता के तत्व से है। मुझे वह मूल्य कैसे मिल सकता है?

अग्रिम धन्यवाद!

उत्तर

31

तो आप उसी संदेश पर RAM.Size मान प्राप्त करने का प्रयास कर रहे हैं कि आपके ItemsControl से ItemsSource प्राप्त हो रहा है?

अगर यह काम करता है देखें:

<MultiBinding Converter="{StaticResource MultiplyConverter}"> 
    <Binding ElementName="LayoutRoot" Path="ActualHeight"/> 
    <Binding Path="Size" /> 
    <Binding Path="DataContext.RAM.Size" 
     RelativeSource="{RelativeSource Mode=FindAncestor,AncestorType=ItemsControl}" /> 
</MultiBinding> 

तो बाध्यकारी ItemsControl के लिए दृश्य पेड़ के माध्यम से में जा रहा है, तो इसकी DataContext की Ram.Size संपत्ति के लिए बाध्य।

+1

धन्यवाद, यह मेरी परियोजना में काम कर चुका है! –

संबंधित मुद्दे