Было бы очень полезно, если бы вы рассказали мне, как это исправить или нужно ли мне изменить какую-либо часть моего кода.
. В представлении пользователя я получаю следующую ошибку в предыдущей строке: Ошибка экземпляра XDG0003. Это не позволяет мне просмотреть предварительный просмотр и запустить приложение. Эта ошибка возникает только в представлениях приложения, и я не знаю, что может быть ее причиной.
UserModel:
Код: Выделить всё
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WPF_CS_InventoryManager.Models
{
public class UserModel
{
private string _firstname;
private string _lastname;
private string _email;
private string _id;
public string Firstname
{
get => _firstname;
set
{
if (_firstname != value)
{
_firstname = value;
}
}
}
public string Lastname
{
get => _lastname;
set
{
if (_lastname != value)
{
_lastname = value;
}
}
}
public string Email
{
get => _email;
set
{
if (_email != value)
{
_email = value;
}
}
}
public string Id
{
get => _id;
set
{
if (_id != value)
{
_id = value;
}
}
}
}
}
Код: Выделить всё
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WPF_CS_InventoryManager.ViewModels
{
internal class BaseViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler? PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Код: Выделить всё
using System.Collections.ObjectModel;
using System.Windows.Input;
using WPF_CS_InventoryManager.Commands;
using WPF_CS_InventoryManager.DataBase;
using WPF_CS_InventoryManager.Models;
using WPF_CS_InventoryManager.Utils;
namespace WPF_CS_InventoryManager.ViewModels
{
internal class UserViewModel : BaseViewModel
{
private readonly BD _bd;
private ObservableCollection _users;
private UserModel _selectedUser;
public UserViewModel()
{
_bd = new BD();
_users = _bd.GetUsers();
_selectedUser = new UserModel();
}
public ObservableCollection Users
{
get => _users;
set
{
if (_users != value)
{
_users = value;
OnPropertyChanged(nameof(Users));
}
}
}
public UserModel SelectedUser
{
get => _selectedUser;
set
{
if (_selectedUser != value)
{
_selectedUser = value;
OnPropertyChanged(nameof(SelectedUser));
}
}
}
// ========== COMMANDS ==========
public ICommand AddCommand => new RelayCommand(AddExecute, CanAddExecute);
public ICommand EditCommand => new RelayCommand(EditExecute, CanEditOrDelete);
public ICommand DeleteCommand => new RelayCommand(DeleteExecute, CanEditOrDelete);
public ICommand ExportPdfCommand => new RelayCommand(_ => ExportPdf());
private void AddExecute(object? _)
{
_bd.AddUser(SelectedUser);
Users = _bd.GetUsers();
SelectedUser = new UserModel();
}
private bool CanAddExecute(object? _)
{
// Aquí podrías validar campos requeridos
return !string.IsNullOrWhiteSpace(SelectedUser?.Id);
}
private void EditExecute(object? _)
{
_bd.EditUser(SelectedUser);
Users = _bd.GetUsers();
}
private void DeleteExecute(object? _)
{
_bd.DeleteUser(SelectedUser);
Users = _bd.GetUsers();
SelectedUser = new UserModel();
}
private bool CanEditOrDelete(object? _)
{
return SelectedUser != null && !string.IsNullOrWhiteSpace(SelectedUser.Id);
}
private void ExportPdf()
{
PdfExporter.ExportUsers(Users);
}
}
}
Код: Выделить всё
введите здесь описание изображения
Подробнее здесь: https://stackoverflow.com/questions/798 ... ory-manage
Мобильная версия