添加到可观测集合的问题

本文关键字:问题 集合 可观 添加 | 更新日期: 2023-09-27 18:21:29

我在向Observable集合添加项时遇到问题,在过去的几个小时里我尝试了一些事情,但仍然没有成功,这引发了调试。

错误是对象引用未设置为对象的实例。

这是代码。

public class IPermissionData
{
    public UserListViewModel userListViewModel { get; set; }
    public UserListViewModel GetAllUsers()
    {
        List<string> userList = new List<string>();
        string sqlUsers = "select distinct username from DIMS_roles";
        DataTable tempUserTable = new DataTable();
        tempUserTable = Enviroment._database.GetResults(sqlUsers);
        for (int i = 0; i < tempUserTable.Rows.Count; i++)
        {
            if (tempUserTable.Rows[i]["username"].ToString() != null && tempUserTable.Rows[i]["username"].ToString() != "")
                userList.Add(tempUserTable.Rows[i]["username"].ToString());
        }
        foreach (string user in userList) 
        {
            if (user != null)
            {
                List<string> userPerm = new List<string>();
                string tempPermSql = string.Format("select role from DIMS_roles where username='{0}'", user);
                DataTable tempPermTable = new DataTable();
                tempPermTable = Enviroment._database.GetResults(tempPermSql);
                for (int i = 0; i < tempPermTable.Rows.Count; i++)
                {
                    if (tempPermTable.Rows[i]["role"].ToString() != null && tempPermTable.Rows[i]["role"].ToString() != "")
                        userList.Add(tempPermTable.Rows[i]["role"].ToString());
                }
                //UserViewModel userViewModel = new UserViewModel() { Permission = userPerm, PermCount = userPerm.Count(), UserName = user };
                userListViewModel.TheUsers.Add(new UserViewModel() { Permission = userPerm, PermCount = userPerm.Count(), UserName = user });
            }
        }
        return userListViewModel;
    }
    public IPermissionData() 
    {
        userListViewModel = new UserListViewModel(); 
    }
}

添加到可观测集合的问题

TheUsers可观察集合应该在视图模型类构造函数中实例化。如果不是,它是null-这就是为什么你不能向它添加项目。你不能向不存在的东西添加项目。:)