当我向BindingList添加信息时,它会被复制......我不明白......
我有这个课程列表:
public VideoRepository()
{
videos = new BindingList<Video>();
videosFiltered = new BindingList<Video>();
}
public BindingList<Video> videos { get; set; }
public BindingList<Video> videosFiltered { get; set; }
public void addVideo(Video video)
{
Console.WriteLine("Size 1 " + videos.Count);
videos.Add(video);
videosFiltered.Add(video);
Console.WriteLine("Size 2 " + videos.Count);
}
当我调用方法addVideo
时,第一个图片会显示Size 1 0
,第二个图片会显示Size 2 2
。即使使用debuger ......
有什么问题?我喝醉了吗?
答案 0 :(得分:1)
我注意到您的videos
和videosFiltered
都有公共制定者。获得所描述行为的唯一方法是,如果某些外部代码(此处未显示)将它们设置为同一个BindingList<Video>
实例。
你最好删除公共设置者。
或者,修改代码如下
public void addVideo(Video video)
{
Console.WriteLine("Size 1 " + videos.Count);
videos.Add(video);
if (videosFiltered != videos)
videosFiltered.Add(video);
Console.WriteLine("Size 2 " + videos.Count);
}