WPF डेटाग्रिड खाली पंक्ति नीचे


201

मैं अपने डेटाग्रिड का उपयोग करके बाँधता हूं

//fill datagrid
public DataTable GameData
{
    get
    {
        DataSet ds = new DataSet();
        FileStream fs = new FileStream(IMDB.WebPage.Class.Config.XMLPath,
        FileMode.Open, FileAccess.Read);
        StreamReader reader = new StreamReader(fs, Encoding.Default);
        ds.ReadXml(reader);
        fs.Close();
        DataTable temp = ds.Tables[0];
        return ds.Tables[0];
     }
 }

किसी कारण से मुझे सबसे नीचे एक खाली पंक्ति मिलती है। और कभी-कभी ग्रिड में कुछ बटन और चेकबॉक्स पर क्लिक करने के बाद, अधिक खाली पंक्तियों को जोड़ा जाता है।

ऐसा क्यों है? और मैं इसे कैसे अवरुद्ध करूं?

जवाबों:


447

लगता है कि आप शायद CanUserAddRowsDataGrid के लिए सही करने के लिए सेट है। बस जोड़ दो

CanUserAddRows="false"

XAML को।


13
ध्यान रखें कि भले ही ग्रिड के गुणों में चेक बॉक्स अनियंत्रित हो, आपको अतिरिक्त पंक्ति को छिपाने के लिए कोड की उस पंक्ति को स्पष्ट रूप से जोड़ना होगा (या चेक बॉक्स को अनचेक करें)
तोबियास वालिंस्की

6
यदि आप पीछे कोड नहीं चाहते हैं, तो विशेषता CanUserAddRows = "गलत" जोड़ें। यह WPF में एक बग जैसा दिखता है जिसे आपको इसे गलत तरीके से सेट करना होगा।
ZZZ

मुझे इसके विपरीत समस्या है। यह एक खाली पंक्ति नहीं बनाता है, जबकि मैं चाहता हूँ कि।
शिम्मी वेइटहैंडलर

21

यह भी विशेषता के साथ काम करता है:

IsReadOnly="true"

यह CanUserAddRows और CanUserDeleteRows से बेहतर काम करता है
RDV

13

यदि आपका बैकिंग संग्रह जो लागू IEditableCollectionViewकरता है वह अपनी CanAddNewविधि से सही है , तो DataGrid मान लेगा कि आप क्या करना चाहते हैं।

यहाँ एक अच्छा अवलोकन है: WPF DataGrid में संपादन सुविधाओं का अवलोकन


3

यदि आप सोर्स कोड के माध्यम से डेटाग्रिड ऑन-द-फ्लाई बना रहे हैं ...

DataGrid grid = new DataGrid();

grid.CanUserAddRows = false;

//... 
grid.AutoGenerateColumns = false;
grid.Margin = new Thickness(10,20,10,10);
grid.VerticalAlignment = VerticalAlignment.Top;
grid.ItemsSource = //... and so on

0

हालांकि ओपी पूछ रहा था कि खाली पंक्ति को कैसे हटाएं, शीर्षक विशिष्ट नहीं है, और यह लेख मेरी खोज में दिखाई दिया, जबकि यह जानने की कोशिश की गई कि खाली पंक्ति को कैसे जोड़ें। मैंने पाया कि खाली पंक्ति के प्रकट होने के लिए, इसके लिए न केवल आवश्यकता है, CanUserAddRows="True"बल्कि ItemsSourceएक डिफ़ॉल्ट निर्माणकर्ता की आवश्यकता भी है public MyClass () { }

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.