c# - DataGridView - DataTable - displaying properties -


(.NET 2.0, System.Windows.FormsDataGridView और DataTable)

मैं 1 datagrid से कनेक्ट किया है । 1 datatable

datatable 1 कॉलम होता है कि:।। अपने ही प्रकार "MyObject" की युक्त वस्तुओं
MyObject है एक सार्वजनिक स्ट्रिंग संपत्ति "MyProp"

मैं ग्रिड में 1 कॉलम प्रदर्शित करना चाहता हूं: तालिका में MyObjects की संपत्ति की स्ट्रिप मान दिखा रहा है।

लेकिन मैं इसे काम करने के लिए प्रतीत नहीं कर सकता।

रेखाचित्र के रूप में:

  • myTable.Column1.Name: "Obj"
  • myDataSet शामिल 1 टेबल: mytable (कुछ पंक्तियों से भरा)
  • < li> myBindingSource.datasource = myDataSet
  • myBindingSource.DataMember = mytable
  • myDataGridView.DataSource = myBindingSource
  • myDataGridView में: 1 DataGridViewTextBoxColumn

  • प्रयास 1:

स्तंभ। डेटाप्रॉपर्टी नाम = "Obj" (डिफ़ॉल्ट रूप से उत्पन्न)

परिणाम प्रदर्शित करता है (ओवरराइड) MyObject.ToString () असली नहीं ly क्या मैं चाहता हूँ, इस समारोह प्रवेश के लिए उपयोग में है

  • परीक्षण 2:।

GridViewColumn.DataPropertyName = "Obj.MyProp"

कुछ भी प्रदर्शित नहीं होता है (MyProp के प्राप्त करें को कभी भी नहीं कहा जाता है)

  • tryout 3: MyProp संपत्ति को बंधन योग्य बनाया गया है:

     <कोड> [Bindable (BindableSupport.Yes)] सार्वजनिक स्ट्रिंग MyProp {...  

    SameSame, परीक्षण से अलग नहीं 2

< P> संक्षेप में:

GridViewColumn.DataPropertyName किसी डेटासेट के कॉलम में ऑब्जेक्ट में ड्रिलिंग और नीचे का समर्थन नहीं करता।

< P> कोई भी विचार?

धन्यवाद अग्रिम!

जनवरी

केवल डेटेटबल पंक्ति में Obj.MyProp स्ट्रिंग मान डालना कोशिश करें। किसी ऑब्जेक्ट को उसमें डालकर उसे स्ट्रिंग प्रस्तुतीकरण (ओब। टॉस्ट्रिंग ()) में परिवर्तित करने की आवश्यकता होगी, जो आपको उस आउटपुट को प्राप्त कर रहा है जिसे आप देख रहे हैं।

एक आंकड़ा एक स्प्रैडशीट की तरह बहुत अधिक है, ऑरे की तरह नहीं (वस्तुओं का) आपको इसका इलाज करना होगा।


Comments