2012-09-27 13 views
5

के साथ निर्दिष्ट कॉलम पर क्लिक करके एक पंक्ति हटाएं मेरे पास एक साधारण प्रश्न है जिसे मैं स्वयं हल नहीं कर पा रहा हूं।ऑब्जेक्टलिस्ट देखें - निश्चित सामग्री/टेक्स्ट

मेरे पास ऑब्जेक्टलिस्ट दृश्य है जो मेरी कुछ वस्तुओं से भरा है। लेकिन इसके अतिरिक्त मैं एक डिफ़ॉल्ट पाठ "हटाएं" के साथ एक और कॉलम रखना चाहता हूं। उस कॉलम पर क्लिक करने पर, चयनित पंक्ति हटा दी जानी चाहिए। मैं उसको कैसे करू?

उत्तर

12

आप वांछित पंक्ति संपादन योग्य बनाकर और सेलएडिट एक्टिवेशन ईवेंट का उपयोग करके इसे प्राप्त कर सकते हैं। अपने OLV प्रारंभ और "हटाएँ-स्तंभ" इस प्रकार है:

// fire cell edit event on single click 
objectListView1.CellEditActivation = ObjectListView.CellEditActivateMode.SingleClick; 
objectListView1.CellEditStarting += ObjectListView1OnCellEditStarting; 

// enable cell edit and always set cell text to "Delete" 
deleteColumn.IsEditable = true; 
deleteColumn.AspectGetter = delegate { 
    return "Delete"; 
}; 

तो फिर तुम जैसे ही स्तंभ क्लिक किया जाता है CellEditStarting हैंडलर में पंक्ति निकाल सकते हैं:

private void ObjectListView1OnCellEditStarting(object sender, CellEditEventArgs e) { 
    // special cell edit handling for our delete-row 
    if (e.Column == deleteColumn) { 
     e.Cancel = true;  // we don't want to edit anything 
     objectListView1.RemoveObject(e.RowObject); // remove object 
    } 
} 

इस पर सुधार करने के लिए, आप पाठ के अलावा एक छवि प्रदर्शित कर सकते हैं।

// assign an ImageList containing at least one image to SmallImageList 
objectListView1.SmallImageList = imageList1; 

// always display image from index 0 as default image for deleteColumn 
deleteColumn.ImageGetter = delegate { 
    return 0; 
}; 

परिणाम:

enter image description here

आप छवि के बगल में किसी भी पाठ प्रदर्शित करने के लिए नहीं करना चाहते हैं तो आप उपयोग कर सकते हैं

deleteColumn.AspectToStringConverter = delegate { 
    return String.Empty; 
}; 

तुम भी एक के लिए पहलू सेट कर सकते हैं खाली स्ट्रिंग, लेकिन इसे "सर्वोत्तम अभ्यास" के रूप में मानें। अभी भी एक पहलू लौटने से, सॉर्टिंग और ग्रुपिंग अभी भी काम करेगी।

0

"हटाएँ" स्तंभ ObjectListView में पहले स्तंभ नहीं है, तो आप स्थापित करने के लिए

ShowImagesOnSubItems = true; 

भी ObjectListView show icons देखें होगा।

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