Trong ứng dụng biểu mẫu C# Windows; Có một trình xử lý sự kiện cho điều khiển ListView được kích hoạt khi các mục được thêm vào các mục listview không?Thêm trình xử lý sự kiện cho ListView Items_added
Trả lời
Tôi sẽ see here hoặc here. Họ có nhiều hay ít câu trả lời giống nhau, chỉ được viết theo các phong cách rất khác nhau. Phiên bản ngắn, thêm sự kiện ItemAdded vào ListViewItemCollection.
RTFM thậm chí không phải là câu trả lời! – AHH
@AHH - Đặc biệt khi FM không đề cập đến bất cứ điều gì giống như câu trả lời cho OP này. :) (Trừ khi bạn đang tìm kiếm trong một phiên bản của NET ngoài 4.0?) Mỗi câu trả lời chức năng tôi đã tìm thấy bất cứ nơi nào liên quan đến việc mở rộng Các hình thức ListView để thêm tính năng này. Liên kết ** xem ở đây ** đang nói về WPF, và liên kết ** here ** là một giải pháp ListView mở rộng khác. –
Khuôn khổ thực hiện không xác định sự kiện như ItemAdded
. Tuy nhiên, hãy đảm bảo truy cập giải pháp này: An Observer Pattern and an Extended ListView Event Model. Ví dụ: các sự kiện sau được xác định tại đó:
public event ListViewItemDelegate ItemAdded;
public event ListViewItemRangeDelegate ItemRangeAdded;
public event ListViewRemoveDelegate ItemRemoved;
public event ListViewRemoveAtDelegate ItemRemovedAt;
Không có sự kiện nào xảy ra. Nhưng bạn luôn có thể tạo hộp danh sách của riêng bạn:
public class MyListView : ListView
{
public void AddItem(ListViewItem item)
{
Items.Add(item);
if (ItemAdded != null)
ItemAdded.Invoke(this, new ItemsAddedArgs(item));
}
public EventHandler<ItemsAddedArgs> ItemAdded;
}
public class ItemsAddedArgs : EventArgs
{
public ItemsAddedArgs(ListViewItem item)
{
Item = item;
}
public object Item { get; set; }
}
Một lựa chọn khác là để giữ các mục trong một thể hiện của lớp ObservableCollection, thiết ListView.ItemsSource vào bộ sưu tập đó và đăng ký vào các sự kiện ObservableCollection.CollectionChanged.
Đáng buồn thay, 'Dạng xem danh sách 'không có' MụcSource'. Đó là một cải tiến 'WPF'. –
Bạn không cần chỉnh sửa nguồn khác!
Ok: thay đổi từ ListView để myListView
thời gian dài trước đây - nhưng tôi tìm kiếm một giải pháp mà không dụng cụ với riêng ItemAdd-Function! Cách tốt nhất để làm điều đó ... sử dụng chức năng WndProc.
nhắn: LVM_INSERTITEM
http://msdn.microsoft.com/en-us/library/windows/desktop/bb761107%28v=vs.85%29.aspx
//COMMCTRL.H
#define LVM_FIRST 0x1000 // ListView messages
#define LVM_INSERTITEMA (LVM_FIRST + 7)
#define LVM_INSERTITEMW (LVM_FIRST + 77)
//edit itemremove (LVM_DELETEITEM)
#define LVM_DELETEITEM (LVM_FIRST + 8)
C# -implementation
class myListView : ListView {
protected override void WndProc(ref Message m){
base.WndProc(ref m);
switch (m.Msg){
case 0x1007: //ListViewItemAdd-A
System.Diagnostics.Debug.WriteLine("Item added (A)");
break;
case 0x104D: //ListViewItemAdd-W
System.Diagnostics.Debug.WriteLine("Item added (W)");
break;
//edit for itemremove
case 0x1008:
System.Diagnostics.Debug.WriteLine("Item removed");
break;
case 0x1009:
System.Diagnostics.Debug.WriteLine("Item removed (All)");
break;
default:
break;
}
}
}
Bây giờ bạn có thể bắn ItemAddedEvent của riêng bạn. Tôi hy vọng rằng sẽ giúp những người khác, những người có cùng một vấn đề.
gegards raiserle
(chỉnh sửa: hãy bỏ phiếu;))
Cảm ơn bạn đã chia sẻ thông tin này, tôi có thể hỏi thông báo hoặc trường hợp của mục bị xóa không? – NetInfo
http://msdn.microsoft.com/en-us/library/windows/desktop/bb774895%28v=vs.85%29.aspx xem bài đăng của tôi: D – raiserle
Cảm ơn bạn rất nhiều, bạn là huyền thoại , Chúa phù hộ. – NetInfo
- 1. Thêm trình xử lý sự kiện vào main() cho SerialPort
- 2. Thêm nhiều trình xử lý sự kiện cho một sự kiện trong XAML?
- 3. Thêm trình xử lý sự kiện nhấp chuột vào Pushpin
- 4. Thêm xử lý sự kiện riêng trước xử lý sự kiện khác
- 5. Google Maps v3 InfoBox Thêm Trình xử lý Sự kiện
- 6. Thêm trình xử lý sự kiện nhấp vào iframe
- 7. Thêm và xóa Trình xử lý sự kiện ẩn danh
- 8. Chuyển hướng Symfony2 cho trình xử lý sự kiện?
- 9. Delphi VCL cho Win32 - nhiều trình xử lý sự kiện
- 10. Truyền đối số cho trình xử lý sự kiện
- 11. Trình xử lý sự kiện Javascript cho in
- 12. chạm vào trình xử lý sự kiện cho UIImageView
- 13. Sự khác biệt giữa Trình xử lý sự kiện & Trình xử lý sự kiện trong Java là gì?
- 14. Sự khác biệt, nếu có, giữa trình xử lý sự kiện và trình xử lý sự kiện?
- 15. Làm mới trình xử lý sự kiện Javascript
- 16. Tôi có nên xóa trình xử lý sự kiện không?
- 17. VB.NET 2005 - Trình xử lý sự kiện "Toàn cầu"?
- 18. Tạo trình xử lý sự kiện C# trống
- 19. Trình xử lý sự kiện của UserControl không kích hoạt
- 20. Thừa kế các trình xử lý sự kiện trong C#
- 21. Trình xử lý sự kiện tùy chỉnh Android
- 22. Gỡ bỏ đúng trình xử lý sự kiện ẩn danh
- 23. Trình xử lý sự kiện theo cú pháp/mẫu C# -
- 24. Làm thế nào để đưa trình xử lý sự kiện vào các sự kiện với Unity
- 25. Lập trình trò chơi và xử lý sự kiện
- 26. Cách thêm trình xử lý sự kiện vào biến cục bộ trong VB.NET
- 27. Thêm một trình xử lý sự kiện vào jqGrid sau khi instantiation
- 28. Trình xử lý sự kiện không được gọi? - wxWidgets
- 29. C# Gỡ bỏ rõ ràng Trình xử lý sự kiện
- 30. Trình xử lý sự kiện nhấn nút dài
thể trùng lặp của [ListView mục Added Event] (http://stackoverflow.com/questions/2024401/listview-item-added-event) –