2009-05-22 14 views
5

मैं एक सूची है, जहां MyObject लग रहा हैबाध्यकारी DataGridView, कुछ गुण

तरह
class MyObject 
{ 
    public string Property1 { get; set; } 
    public string Property2 { get; set; } 
} 

//List<MyObject> objects; 
grid.Columns[0].DataPropertyName = "Property1"; 
grid.DataSource = objects; 

मैं केवल एक संपत्ति प्रदर्शित करना चाहते हैं के लिए एक DataGridView बाध्य करने के लिए कोशिश कर रहा हूँ नहीं दिखाया जाना चाहिए, लेकिन इसके बजाय मुझे अपने डेटाग्रिड व्यू में एक और कॉलम जोड़ा गया है जहां प्रॉपर्टी 2 भी प्रदर्शित होता है। मैं इसे जोड़ने से कैसे रोक सकता हूं?

उत्तर

9

आप कभी नहीं कि संपत्ति से प्रदर्शित करना चाहते हैं:

class MyObject 
{ 
    public string Property1 { get; set; } 
    [Browsable(false)] 
    public string Property2 { get; set; } 
} 

अन्यथा, के रूप में पहले ही कहा गया - गलत पर AutoGenerateColumns की स्थापना की और उन्हें मैन्युअल रूप से जोड़ सकते हैं।

2

ऐसा लगता है कि आपके पास DataGridView नियंत्रण सेट की स्वत: जेनरेट कॉलम गुण सत्य पर सेट है। आप या तो इसे गलत पर सेट कर सकते हैं, या कॉलम को हटाने के लिए। Collumns.Remove विधि का उपयोग कर सकते हैं जिसे आप देखना नहीं चाहते हैं।

0

मुझे विश्वास है कि आपको मैन्युअल रूप से कॉलम सेट अप करने की आवश्यकता है, जैसा कि हेनक ने कहा था। हालांकि आप अपने उदाहरण की तुलना में अधिक गुण सेट करना चाह सकते हैं। मैंने एक परियोजना में यह किया है:

DataGridView dataGridView = new DataGridView(); 
dataGridView.AutoGenerateColumns = false; 

DataGridViewColumn columnA = new DataGridViewTextBoxColumn(); 
columnA.DataPropertyName = "propertyA"; 
columnA.HeaderText = "Column A"; 
columnA.Name = "columnA"; 

DataGridViewColumn columnB = new DataGridViewTextBoxColumn(); 
columnB.DataPropertyName = "propertyB"; 
columnB.HeaderText = "Column B"; 
columnB.Name = "columnB"; 

dataGridView.Columns.Clear(); 
dataGridView.Columns.Add(columnA); 
dataGridView.Columns.Add(columnB); 
dataGridView.AutoResizeColumns(); 

मुझे उपरोक्त कार्यों पर विश्वास है। यदि आपको यह सुनिश्चित करने के लिए एक अजीब अपवाद मिलता है कि कॉलम/कक्षों में डिफ़ॉल्ट सेल शैलियों को परिभाषित किया गया है।

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