添加到可观测集合的问题
本文关键字:问题 集合 可观 添加 | 更新日期: 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-这就是为什么你不能向它添加项目。你不能向不存在的东西添加项目。:)