wpf

2010-03-13 9 views
15

में अभिभावक तत्व की संपत्ति से जुड़ें 'मैं ग्रिड व्यू की पंक्ति की ऊंचाई संपत्ति में RichTextBox की ऊँचाई संपत्ति को बांधना चाहता हूं। मैं उसे कैसे कर सकता हूँ? मुझे नहीं पता कि पंक्ति की ऊंचाई कैसे प्राप्त करें क्योंकि मैं xaml में पंक्ति तक नहीं पहुंच सकता जो मैं करना चाहता हूं।wpf

पूर्वज प्रकार GridViewHeaderRow होना चाहिए, लेकिन मैं अपने स्तर नहीं पता ...

संपादित करें:

<my:RadGridView Height="524" RowHeight="300" ItemsSource="{Binding Lessons}" AutoGenerateColumns="False" Name="dataGrid1" VerticalAlignment="Top" SelectionMode="Single" CanUserSortColumns="False" IsFilteringAllowed="False"> 

      <my:RadGridView.Columns> 
       <my:GridViewDataColumn DataMemberBinding="{Binding SchoolclassName}" Header="Schoolclass" Width="0.1*" /> 
       <my:GridViewDataColumn DataMemberBinding="{Binding SubjectName}"  Header="Subject"  Width="0.1*" /> 

       <my:GridViewDataColumn Width="0.3*" Header="Homework"> 
        <my:GridViewDataColumn.CellTemplate> 
         <DataTemplate> 
          <RichTextBox Height="{Binding ElementName=dataGrid1,Path=RowHeight}" > 
           <FlowDocument> 
            <Paragraph> 
             <Run Text="{Binding Homework}"/> 
            </Paragraph> 
           </FlowDocument> 
          </RichTextBox>         
         </DataTemplate> 
        </my:GridViewDataColumn.CellTemplate> 


<my:RadGridView Height="524" ItemsSource="{Binding Lessons}" AutoGenerateColumns="False" Name="dataGrid1" VerticalAlignment="Top" SelectionMode="Single" CanUserSortColumns="False" IsFilteringAllowed="False"> 
      <my:RadGridView.Columns> 

       <my:GridViewDataColumn Name="ContentColumn" Width="0.3*" Header="Content"> 
        <my:GridViewDataColumn.CellTemplate> 
         <DataTemplate> 
          <RichTextBox Height="{Binding ElementName=MyRowNameToBindTo,Path=Height}"> 
           <FlowDocument> 
            <Paragraph> 
             <Run Text="{Binding Content}"/> 
            </Paragraph> 
           </FlowDocument> 
          </RichTextBox> 
         </DataTemplate> 
        </my:GridViewDataColumn.CellTemplate> 

...

उत्तर

20

मैं के बारे में पता नहीं है अपने RadGrid यहां देखें। लेकिन पहली बात यह है कि मैं RelativeSource का उपयोग कर ढूँढ रहा हूं FindAncestor के साथ बाध्यकारी दृश्य वृक्ष को तब तक चलने के लिए जब तक एक GridViewHeaderRow पाया जाता है और इसकी ऊंचाई संपत्ति से बांध नहीं जाता है।

 
... Height="{Binding Height, 
       RelativeSource={RelativeSource Mode=FindAncestor, 
           AncestorType={x:Type GridViewHeaderRow }}}" ... 

आपको RadGridView को खोजने के लिए पेड़ को चलना पड़ सकता है और फिर इसे हेडर पंक्ति पर वापस चला जाना पड़ सकता है।

 
... Height="{Binding HeaderRow.Height, 
       RelativeSource={RelativeSource Mode=FindAncestor, 
           AncestorType={x:Type RadGridView }}}" ... 

या

 
... Height="{Binding Rows[0].Height, 
       RelativeSource={RelativeSource Mode=FindAncestor, 
           AncestorType={x:Type RadGridView }}}" ... 

RadGridView के कार्यान्वयन पर निर्भर करता है। कारण है कि मैं इस पर त्रुटियों मिलता है:

+0

मैं/संपादित करें अद्यतन कोड के साथ init प्रश्न बदल दिया है मैं भूल गया, RadGridView है एक RowHeight संपत्ति मैं ElementName के माध्यम से बांध सकते हैं ... – msfanboy

+0

मुझे यह त्रुटि क्यों मिलती है? System.Windows.Data त्रुटि: 4: संदर्भ 'ElementName = dataGrid1' के साथ बाध्यकारी के लिए स्रोत नहीं मिल रहा है। BindingExpression: पथ = RowHeight; DataItem = बातिल; लक्ष्य तत्व 'RichTextBox' (नाम = '') है; लक्षित संपत्ति 'ऊँचाई' (प्रकार 'डबल') – msfanboy

+0

ठीक है टेलरिक्स क्रैपी डेटाग्रिड से नफरत करने का एक और कारण है। सार्वजनिक डबल रोहेइट {प्राप्त करें; सेट;} इसकी कोई निर्भरता संपत्ति ...: एस – msfanboy

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