डेटाग्रिड पंक्तियों को प्रोग्रामेटिक रूप से फिर से कैसे करें?

मैं वेब विकास के वर्षों के बाद अचानक WinForms में वापस आ गया हूं, और मुझे कुछ आसान होने के साथ परेशानी हो रही है। मेरे पास एक विंडोज़ फॉर्म DataGrid से जुड़ी व्यावसायिक वस्तुओं का ArrayList है। मैं चाहता हूं कि उपयोगकर्ता कोशिकाओं को संपादित करने में सक्षम हो, और जब समाप्त हो जाए, तो सहेजें बटन दबाएं। उस बिंदु पर मैं किसी भी बदलाव को खोजने के लिए DataGrid में सभी पंक्तियों और स्तंभों को फिर से शुरू करना चाहता हूं, और उन्हें डेटाबेस में सहेजना चाहता हूं। लेकिन मुझे DataGrid पंक्तियों तक पहुंचने का कोई तरीका नहीं मिल रहा है।

मैं व्यक्तिगत कोशिकाओं को रीयल टाइम को भी सत्यापित करना चाहता हूं, क्योंकि उन्हें संपादित किया गया है, लेकिन मुझे पूरा यकीन है कि किया जा सकता है। (शायद ArreList के साथ DataSource के रूप में नहीं?) लेकिन DataGrid को पुन: सक्रिय करने के लिए, मुझे आश्चर्य है कि यह संभव नहीं लगता है ।

डाटाग्रिड का उपयोग करने के लिए क्या मुझे वास्तव में अपने व्यापार ऑब्जेक्ट डेटा को डेटाटेबल्स में सामान देना चाहिए?

0
ro fr bn

4 उत्तर

WinForms 3.0 के बारे में कुछ भी है जो 1.1

से बहुत बेहतर है

मुझे 3.0 के बारे में पता नहीं है, लेकिन आप वीएस 2008 में कोड लिख सकते हैं जो .NET 2.0 ढांचे पर चलता है। (इसलिए, आप नवीनतम सी # भाषा का उपयोग करते हैं, लेकिन आप केवल 2.0 पुस्तकालयों का उपयोग कर सकते हैं)

This gets you Generics (List instead of those GodAwful ArrayLists) and a ton of other stuff, you'll literally end up writing 3x less code.

0
जोड़ा
foreach(var row in DataGrid1.Rows)
{
  DoStuff(row);
}
//Or ---------------------------------------------   
foreach(DataGridRow row in DataGrid1.Rows)
{
  DoStuff(row);
}
//Or ---------------------------------------------
for(int i = 0; i< DataGrid1.Rows.Count - 1; i++)
{
  DoStuff(DataGrid1.Rows[i]);
}
0
जोड़ा
मुझे लगता है कि आपका तीसरा उदाहरण गलत है। के लिए कोई ज़रूरत नहीं - 1
जोड़ा लेखक Mark Heath, स्रोत
object cell = myDataGrid[row, col];
0
जोड़ा

आह, मैं वास्तव में बस एक बार फिर से परीक्षण कर रहा था! :) असली जवाब यह है कि, आपको शायद ही कभी डेटाग्रिड को फिर से शुरू करने की आवश्यकता है। क्योंकि जब भी एक ArrayList के लिए बाध्यकारी, बाध्यकारी 2 रास्ता है। फिर भी, यह जानने के लिए आसान है कि ग्रिड को सीधे कैसे घुमाया जाए, यह अब कोड की कुछ पंक्तियों को बचा सकता है।

लेकिन NotMyself और ओरियन ने बेहतर जवाब दिए: विकास लागत को बचाने और रखरखाव और विस्तारशीलता बढ़ाने के लिए हितधारकों को सी # के उच्च संस्करण तक पहुंचने के लिए मनाएं।

0
जोड़ा