2011-05-15 9 views
6

में पंक्तियों को जोड़ने मैं निम्नलिखित XAML कोड है:मैन्युअल WPF डेटा ग्रिड

<sdk:DataGrid Margin="58,8,52,18" Name="dataGridTickets"> 
    <sdk:DataGrid.Columns> 
     <sdk:DataGridTextColumn x:Name="ticketNoColumn" Header="Ticket No." IsReadOnly="True" Width="SizeToHeader"/> 
     <sdk:DataGridTextColumn x:Name="seatRowColumn" Header="Seat Row" IsReadOnly="True" Width="SizeToHeader"/> 
     <sdk:DataGridTextColumn x:Name="seatNumberColumn" Header="Seat Number" IsReadOnly="True" Width="SizeToHeader"/> 
    </sdk:DataGrid.Columns> 
</sdk:DataGrid> 

मैं प्रोग्राम के ग्रिड में मैनुअल डेटा दर्ज करना चाहते हैं, मैं कैसे यह करने के लिए प्रबंधन कर सकते हैं?

धन्यवाद

कार्य समाधान

Programatically add rows in a WPF DataGrid

उत्तर

8

आप एक ग्रिड की जाने वाली पंक्तियां न जोड़ें।

  1. बाइंड एक सूची (प्रत्यक्ष संग्रह) के लिए ग्रिड
  2. कि सूची में आइटम जोड़ना।

परिणाम: ग्रिड में नई पंक्तियां दिखाई देती हैं।

+5

क्यों नहीं? मुझे पता है कि यह सामान्य उपयोग नहीं है, लेकिन यह किया जा सकता है। ऐसे कई उदाहरण हो सकते हैं जहां सूची में आइटम जोड़ना ऑपरेटिंग का पसंदीदा तरीका नहीं है। – IAmTimCorey

+7

@ बिग्स: उन उदाहरणों को स्पेगेटी-रोड कहा जाता है। यदि आपको करना है तो एक मध्यवर्ती सूची जोड़ें। नियंत्रण एक डेटा संरचना नहीं है। –

+0

@ हेनक होल्टरमैन - सच, मुझे लगता है कि मैं सिर्फ ओपी के प्रश्न को सीधे संबोधित करने की कोशिश कर रहा था और यह तकनीकी रूप से संभव है। आप सही हैं हालांकि आपको UI नियंत्रण के बजाय अंतर्निहित डेटा संरचना को संपादित करना चाहिए। – IAmTimCorey

6

आप datagrid DataBind लिए नहीं करना चाहते हैं (यहां तक ​​कि रनटाइम पर), तो आप इस अतः लेख में सलाह का पालन कर सकते हैं:

programmatically add column & rows to WPF Datagrid

मूल रूप से आप एक नई पंक्ति बनाएं (कोड में) और इसे वस्तुओं के साथ पॉप्युलेट करें और फिर इसे अपने ग्रिड पर असाइन करें।

हेनक की तरह यह इंगित किया गया कि यह एक महान अभ्यास नहीं है। यदि यह एक बंद स्थिति है, तो इसके लिए औचित्य हो सकता है लेकिन आम तौर पर आपको अंतर्निहित डेटा स्रोत अपडेट करके इसका संपर्क करना चाहिए। यहां माइक्रोसॉफ्ट का एक उदाहरण दिया गया है:

http://social.msdn.microsoft.com/Forums/en/wpf/thread/9b96a798-e185-4d90-ba73-afc35eb91643