我的自定义用户控件中有一个List。我希望控件在每次更改列表的内容时重绘列表中的每个图像。移动,添加或移除物品都应该触发事件。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WebServiceScanner
{
public partial class imageList : UserControl
{
public imageList()
{
InitializeComponent();
}
public List<Image> Images { get; set; }
public void AddImage(Image image)
{
Images.Add(image);
}
public void RemoveImage(Image image)
{
Images.Remove(image);
}
public void MoveImageLeft(int index)
{
Image tmpImage = Images[index];
Images[index] = Images[index - 1];
Images[index - 1] = tmpImage;
}
public void MoveImageLeft(int index)
{
Image tmpImage = Images[index];
Images[index] = Images[index + 1];
Images[index + 1] = tmpImage;
}
}
}
可以这样做吗?
感谢您的指导!渴望学习!
答案 0 :(得分:4)
您可以使用ObservableCollection<T>
代替List<T>
并处理其CollectionChanged事件。
答案 1 :(得分:0)
public partial class imageList : UserControl
{
public event OnChange;
public imageList()
{
InitializeComponent();
}
public List<Image> Images { get; set; }
public void AddImage(Image image)
{
Images.Add(image);
this.OnChange();
}
public void RemoveImage(Image image)
{
Images.Remove(image);
this.OnChange();
}
public void MoveImageLeft(int index)
{
Image tmpImage = Images[index];
Images[index] = Images[index - 1];
Images[index - 1] = tmpImage;
this.OnChange();
}
public void MoveImageLeft(int index)
{
Image tmpImage = Images[index];
Images[index] = Images[index + 1];
Images[index + 1] = tmpImage;
this.OnChange();
}
}
答案 2 :(得分:0)
您也可以尝试使用BindingList。这里讨论的差异如下: https://stackoverflow.com/questions/4284663/...