我有一个简单的WPF
应用程序,它允许用户管理他们的工作人员。用户可以添加,删除和编辑工作人员。我想在重新启动应用程序后记住用户和他们的工作人员,所以我认为我需要使用Visual Studio
设置(我的意思是Settings.settings
文件和Settings
类)。 我的应用程序显示登录窗口,用户写入登录名和密码,主窗口显示允许查看和主要管理用户的工作人员。 当用户登录时,我想加载他的工作人员列表,他登出后我想保存修改的列表。 我创建了一个名为AllUsers
的设置,其类型为UserCollection
。下面是这个简单的类的代码和User
类:Visual Studio设置不起作用
public class UserCollection
{
public UserCollection(IEnumerable<User> users = null)
{
Users=new List<User>(users ?? new List<User>());
}
public List<User> Users;
}
public class User
{
public string Login { get; }
public string Password { get; }
public ObservableCollection<Worker> Workers { get; set; }
public User(string login, string password)
{
Login = login;
Password = password;
Workers=new ObservableCollection<Worker>();
}
}
然后我写了一个类PropertiesManager
这将管理设置,更新和保存它们。下面是代码:
public static class PropertiesManager
{
public static List<User> Users
{
get
{
if (Settings.Default.AllUsers == null)
{
Settings.Default.AllUsers=new UserCollection();
Settings.Default.Save();
}
return Settings.Default.AllUsers.Users;
}
set
{
Settings.Default.AllUsers.Users = value;
Settings.Default.Save();
}
}
public static User VerifyUser(string login, string password)
{
User current = Users.FirstOrDefault(x => x.Login.Equals(login));
if (current == null)
{
current=new User(login,password);
Users.Add(current);
SaveUser();
}
return current;
}
public static void SaveUser()
{
Settings.Default.Save();
}
}
我也认为Settings.settings
文件可能是有用的:
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01 /settings" CurrentProfile="(Default)" GeneratedClassNamespace="HRManger.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="AllUsers" Type="HRManger.UserCollection" Scope="User">
<Value Profile="(Default)" />
</Setting>
</Settings>
</SettingsFile>
我注意到,当我登录为user1的添加一些工人和注销,然后做一样user2并以user1再次登录,他的工作人员显示正常。但是,当我重新启动应用程序时,我会失去一切。 我不知道我做错了什么。我忘记了一些重要的事情吗?
噢,我知道在我写'''Type =“System.Collections.Generic.List <HRManager.Model.User>”Scope =“用户“>”,但没关系 –
bakala12