将重复值添加到BindingList

时间:2015-11-01 14:05:20

标签: c# add bindinglist

当我向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 ......

有什么问题?我喝醉了吗?

1 个答案:

答案 0 :(得分:1)

我注意到您的videosvideosFiltered都有公共制定者。获得所描述行为的唯一方法是,如果某些外部代码(此处未显示)将它们设置为同一个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);
}