自动更新数据网格视图

本文关键字:网格 视图 数据网 数据 更新 | 更新日期: 2023-09-27 18:27:22

表单中的数据网格视图从列表中填充我有一个从列表中填充的带有数据网格视图的表单。当我点击每行上的用户按钮时,数据网格中的用户列表应该会出现

新表单上的数据网格由我传递的列表更新,当我点击用户按钮时,会发生以下情况:

 GetUserDescriptorDetails gtUserDetails = new GetUserDescriptorDetails(name, xmlData, CreateListDynamically(name));
 gtUserDetails.ShowDialog();

CreateListDynamically方法如下所示:

 public BindingList<xml.UserDescriptor> CreateListDynamically(string _name)
    {
        foreach (xml.UserDescriptor dbList in xmlData.Users)
        {
            if (dbList.DatabaseDescriptorName == _name)
            {
                users.Add(new xml.UserDescriptor() { DatabaseDescriptorName = dbList.DatabaseDescriptorName, Username = dbList.Username, Password = dbList.Password, IsAdmin = dbList.IsAdmin });
            }
        }
        return users;
    }

现在列表很好,但每次我单击"用户"按钮时,由于用户的原因,行都会重复。添加我该如何解决这个问题?事实上,我添加值只是为了填充列表,有没有其他方法可以获得具有以下条件的列表:

dbList.DatabaseDescriptorName == _name

自动更新数据网格视图

在您的CreateListDynamically(string _name)方法中,您从未清除以前的users列表,这将是您获得重复的原因
foreach循环之前添加一个users.Clear(),重复应该会消失。

这一切都假设users是一个类变量,因为我不认为它作为变量传递到方法中

您还可以完全解耦users变量,并在方法中为结果集设置一个临时变量:

public BindingList<UserDescriptor> CreateListDynamically(string _name)
{
  return new BindingList<UserDescriptor>(xmlData.Users.FindAll(x => x.DatabaseDescriptorName == _name));
}