我有一個簡單的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