当我将信息添加到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
。即使使用调试器...
问题是什么?我很醉吗?
我已经注意到您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);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句