मैं इस में कुछ अलग अलग तरीकों से संभाला है, उम्मीद है कि यह उपयोगी है।
पहला विकल्प के रूप में जस्टिन उल्लेख किया है, AutoGennerateColumns = false निर्धारित करते हैं, और वहाँ से मैन्युअल रूप से करना है। यदि आप इसे बाध्य करते हैं, तो रनटाइम नमूना के सभी सार्वजनिक गुणों के लिए कॉलम बनाएगा। आप उन्हें निकालना चाहते हैं, तो आप के रूप में आप इसे अद्यतन रखने की जरूरत है कि
DataGridView.Columns["SomePropertyOfSample"].Remove();
साथ यह समाधान एक सा समस्याग्रस्त है, कर सकते हैं, और स्पष्ट रूप से आइटम निकालें।
संपत्ति पर गलत करने के लिए ब्राउज़ करने योग्य विशेषता को सेट करने का जस्टिन का संपादन 2 विकल्प दिलचस्प है, मैंने पहले यह कोशिश नहीं की है।
जिस समाधान का मैंने उपयोग किया है, और मुझे लगता है कि एक इंटरफ़ेस के आसपास बहुत अच्छी तरह से घूमता है।
मेरे पास दो अलग-अलग डेटाग्रिड व्यू थे जिन्हें एक ही डेटा दिखाने के लिए आवश्यक था, लेकिन प्रत्येक बार अलग-अलग कॉलम दिखाते और छुपाते थे। इस मामले में आप क्या करेंगे:
public interface ISimpleSample
{
string Name {get;}
int ID {get;}
}
public interface IAdvancedSample
{
string Name {get; set;}
int ID {get; set;}
string Make {get; set;}
string Model {get; set;}
}
public class Sample : ISimpleSample, IAdvancedSample
{
//Implementation skipped
}
फिर आप
BindingList<ISimpleSample> = new BindingList<ISimpleSample>();
का उपयोग कर अपने नमूना संग्रह बना सकते हैं और है कि करने के लिए बाध्य।
यदि आप बाद में कॉलम जोड़ना चाहते हैं, तो आप उन्हें उचित इंटरफ़ेस में जोड़ें।
यह मेरी परियोजना के लिए अच्छा काम करता है, मुझे बताएं कि आप क्या सोचते हैं।
धन्यवाद। कॉम्पैक्ट फ्रेमवर्क डेटाग्रिड क्लास से डेटामेम्बर संपत्ति गुम है। क्या बाइंडिंगलिस्ट स्तर पर ऐसा करने का कोई तरीका है? मैं जो खोज रहा हूं वह एक नमूना संपत्ति को चिह्नित करने का एक तरीका है जो बाध्यकारी नहीं है .... – sarsnake