I have a problem adding items to an Observable collection, I’ve tried a few things over the last few hours and still not making it threw debugging.
The error is Object reference not set to an instance of an object.
here is the code.
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 observable collection should be instantiated in your view model class constructor. If not it is null – which is why you can’t add items to it. You can’t add items to something that doesn’t exist. 🙂