im изучая C# и хотел создать простую регистрацию и форму входа в систему, чтобы практиковать. Я пытаюсь использовать шаблон MVVM. Казалось, что проще просто хранить данные входа в текстовый файл, а затем читать из него для аутентификации. Но возникла проблема, с которой StreamWriter пишет так: System.Collections.ObjectModel.ObservableCollection`1 [LoginForm.Andmed.LoginData]StreamWriter MVVM C# записывает адрес переменной?
Если кто-нибудь может сказать, какие проблемы и как исправить, я был бы очень благодарен.
вид модели:
class LoginVM
{
public string path = @"C:\Users\Dell\Desktop\data.txt";
private ObservableCollection<LoginData> andmed; // creating ObservableCollection of LoginData data.
public ObservableCollection<LoginData> Andmed
{
get { return andmed; }
set { andmed = value; }
}
public LoginVM()
{
this.andmed = new ObservableCollection<LoginData>();
}
public void lisaAndmed(string user, string pass)//adds data to ObservableCollection
{
this.andmed.Add(new LoginData(user, pass));
}
public void salvestaAndmed()//
{
StreamWriter SW = new StreamWriter(path, true); // using streamwriter to save data from the Collection to the path defined
SW.WriteLine(this.andmed);
SW.Close();
}
public string autendi() // method for later purpose for authentification in login form.
{
StreamReader SR = new StreamReader(path);
path = SR.ReadToEnd();
SR.Close();
return path;
}
свойства:
namespace LoginForm.Andmed
{
public class LoginData
{
private string username;
private string password;
public string Username
{
get { return username; }
set { username = value; }
}
public string Password
{
get { return password; }
set { password = value; }
}
public LoginData(string _username, string _password)
{
this.password = _password;
this.username = _username;
}
}
}
Модель вид класса:
public partial class MainWindow : Window
{
LoginVM mudel;
public MainWindow()
{
InitializeComponent();
mudel = new LoginVM();
this.DataContext = mudel;
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
if (user.Text.Length > 0 && pass1.Password == pass2.Password)
{
success.Text = "Successfuly registered!" + user.Text;
error.Text = "";
mudel.lisaAndmed(user.Text, pass1.Password); // calling the method to add data into obsercablecooll
mudel.salvestaAndmed(); // now trying to save the data from obsservablecall
}
else if (pass1.Password != pass2.Password)
{
error.Text = "Passwords arent the same";
}
else
{
error.Text = "Username incorrect!";
}
Logimine logimine = new Logimine();
logimine.ShowDialog();
}
}
Какие исключения вы получаете? – Joe
нет ожиданий вообще, только информация, записанная в текстовый файл, находится в формате> System.Collections.ObjectModel.ObservableCollection'1 [LoginForm.Andmed.LoginData] – user3024888