将重复值添加到 BindingList
Adding duplicated values to a BindingList
当我向 BindingList 添加信息时,它会重复...我不明白如何...
我有这个 class 和列表:
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
。即使在使用调试器时...
问题是什么?我是不是喝多了?
我注意到您的 videos
和 videosFiltered
都有 public 个二传手。获得所描述行为的唯一方法是,如果某些外部代码(此处未显示)将它们设置为同一个 BindingList<Video>
实例。
您最好删除 public 设置器。
或者,修改代码如下
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);
}
当我向 BindingList 添加信息时,它会重复...我不明白如何...
我有这个 class 和列表:
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
。即使在使用调试器时...
问题是什么?我是不是喝多了?
我注意到您的 videos
和 videosFiltered
都有 public 个二传手。获得所描述行为的唯一方法是,如果某些外部代码(此处未显示)将它们设置为同一个 BindingList<Video>
实例。
您最好删除 public 设置器。
或者,修改代码如下
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);
}