2012-10-06 16 views
6

मैं डेटाग्रिड में पंक्तियों की सूची कैसे प्राप्त कर सकता हूं? बाध्य वस्तुओं नहीं, लेकिन DataGridRows सूची।डेटाग्रिड पंक्तियां प्राप्त करें

मुझे इन पंक्तियों की दृश्यता को नियंत्रित करने की आवश्यकता है और इसे DataGridRow के रूप में नियंत्रित करना संभव है और डेटा ऑब्जेक्ट के रूप में नहीं।

धन्यवाद!

उत्तर

22

आप ItemContainerGenerator का उपयोग कर पंक्ति प्राप्त कर सकते हैं। यह काम करना चाहिए -

for (int i = 0; i < dataGrid.Items.Count; i++) 
{ 
    DataGridRow row = (DataGridRow)dataGrid.ItemContainerGenerator 
               .ContainerFromIndex(i); 
} 
+7

एक बात यह है कि जब वर्चुअलाइजेशन पर है (जो यह डिफ़ॉल्ट रूप से है), तो आप करेंगे पंक्तियों के लिए 'शून्य' प्राप्त करें जो नहीं बनाए गए थे। इसका अर्थ यह है कि आप एक ही रन में सभी पंक्तियों के माध्यम से फिर से सक्रिय नहीं हो पाएंगे, जब तक कि आप अपने डेटाग्रिड पर 'वर्चुअलाइजिंगस्टैक पैनेल' IsVirtualizing = "गलत" सेट न करें - लेकिन इससे आपके ग्रिड को खराब प्रदर्शन हो सकता है। –

0

मैं DataGridRow कि अपनी दृश्यता कि क्या यह या प्रदर्शित किया जाना चाहिए नहीं बाध्य होगा के लिए एक शैली को परिभाषित करने की सलाह देते हैं। पंक्तियों के माध्यम से बस पुनरावृत्ति पर्याप्त नहीं होगी, जैसा कि मैंने @ आरवी 1 9 87 के उत्तर में उल्लेख किया था।

<DataGrid> 
    <DataGrid.Resources> 
     <Style TargetType="DataGridRow"> 
      <Setter Property="Visibility" Value="{Binding ...}" /> 
     </Style> 
    </DataGrid.Resources> 
</DataGrid> 

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

आप के लिए क्या बाँध जहां या नहीं, आप पंक्ति प्रदर्शित करना चाहिए की जानकारी पकड़ पर निर्भर करता है। उदाहरण के लिए, यदि आपके बाध्य संग्रह में प्रत्येक डेटा ऑब्जेक्ट एक bool ShouldBeDisplayed संपत्ति है, तो आप कुछ इस तरह होगा: यहां ध्यान देने योग्य

<DataGrid> 
    <DataGrid.Resources> 
     <BooleanToVisibilityConverter x:Key="booleanToVisibilityConverter" /> 

     <Style TargetType="DataGridRow"> 
      <Setter Property="Visibility" Value="{Binding Path=ShouldBeDisplayed, Converter={StaticResource booleanToVisibilityConverter}}" /> 
     </Style> 
    </DataGrid.Resources> 
</DataGrid> 
+0

क्या बाध्यकारी है? यह एक uielemnt नहीं है ... क्या आप अधिक विशिष्ट हो सकता है? – user196625

+0

@ user196625 मेरा जवाब अपडेट किया गया। उम्मीद है कि यह और स्पष्ट है। –

+0

यू धन्यवाद मैं इसे – user196625

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