2009-05-15 2 views
7

मेरे पास डेटाग्रिड (टूलकिट से) है और मैं DataGrid.RowDetailsTemplate में एक और डेटाग्रिड घोंसला करना चाहता हूं। चाल यह है कि मैं मुख्य ग्रिड में एक टेबल से डेटा वापस लेना चाहता हूं और उसके बाद पंक्ति चयन पर आधारित हूं और एक अलग तालिका से additonal विवरण प्राप्त करें और इसे डेटा टेम्प्रिड में विस्तार टेम्पलेट में दिखाएं।नेस्टेड WPF DataGrids

2 अलग डेटाग्रिड्स में करना आसान है लेकिन मुझे इसे नेस्टेड संस्करण के साथ काम करने में परेशानी हो रही है।

क्या यह भी संभव है? यदि हां, तो क्या कोई मुझे सही दिशा में इंगित कर सकता है। मुझे ध्यान रखना चाहिए कि मैं डेटा को पॉप्युलेट करने के लिए LinqToSQL क्लासेस का उपयोग कर रहा हूं।

आपके विचार के लिए धन्यवाद। -Joel

+2

अच्छा और पवित्र है, _please_ एक और 'datagrid' में घोंसला एक' datagrid' नहीं करते कृपया कृपया। –

+0

@GregD क्या आप कृपया बता सकते हैं कि आप ऐसा कुछ क्यों नहीं करेंगे? – SoftwareSavant

+0

कच्चे डीबीएमएस के अपवाद के साथ, डेटाग्रिड व्यावहारिक रूप से हमेशा गलत उपयोगकर्ता अनुभव होता है। यह भारी है, यह जटिल है, यह घना है, इसमें कोई प्रभावी प्रासंगिक जानकारी शामिल नहीं है, और यह एक अच्छा ux डिजाइन करने में विफलता का संकेत है। _another_ भारी, जटिल नियंत्रण के साथ भारी, जटिल नियंत्रण को लेयर करना सिर्फ एक दुःस्वप्न परिदृश्य है। यदि आपके पास पदानुक्रमित डेटा है, तो Windows Explorer प्रतिमान की प्रतिलिपि बनाने पर विचार करें। एक वृक्ष नियंत्रण के साथ संयुक्त लाइटर-वेट लिस्टव्यू _very_ जाने-माने और समझा जाने वाला प्रतिमान है। एक और डाटाग्रिड में _not_ घोंसला एक डाटाग्रिड करें। –

उत्तर

5

यदि आप LinqToSQL का उपयोग कर रहे हैं तो आप आसानी से एक एसोसिएशन का उपयोग करके ऐसा कर सकते हैं।

GuyTable

  • प्रथम नाम
  • अंतिम नाम
  • UniqueID

GuyActionsTable

  • UniqueID
  • : मेरे व्यवहार में मैं दो तालिकाओं बनाया है
  • GuyID
  • कार्य विवरण

मैं GuyTable.UniqueID से एक-से-अनेक संबंध बनाए गए "GuyActions"

बुलाया GuyActionsTable.GuyID को मैं तो इस तरह मेरी डेटा ग्रिड बाँध। के रूप में मैं हाथ से यह कर रहा हूं किसी भी त्रुटि माफ: सब के नाम पर

<w:DataGrid ItemsSource={Binding Source={StaticResource YourDataSource}}> 
<w:DataGrid.RowDetailsTemplate> 
    <DataTemplate> 
     <w:DataGrid ItemsSource={Binding GuyActions}> 
      <w:DataGrid.Columns> 
       <w:DataGridTextColumn Header="Action" DisplayMemberBinding="{Binding Action_Description}" /> 
      </w:DataGrid.Columns> 
     </w:DataGrid> 
    </DataTemplate> 
</w:DataGrid.RowDetailsTemplate> 
<w:DataGrid.Columns> 
    <w:DataGridTextColumn Header="First Name" DisplayMemberBinding="{Binding First_Name}" /> 
    <w:DataGridTextColumn Header="Last Name" DisplayMemberBinding="{Binding Last_Name}" /> 
</w:DataGrid.Columns> 

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