Я пишу приложение и узнал про required поля, которые я решил использовать для того, чтобы делать поля, которые должны быть обязательные в DataGrid.
И я решил повторить код из документации к Avalonia UI, но с использованием required полей:
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
namespace QuizApplication.ViewModels.MainPagesViewModels
{
public partial class HomePageViewModel : ViewModelBase
{
DateOnly dateOnly = new();
public ObservableCollection<Person> People { get; }
public HomePageViewModel()
{
List<Person> people = new()
{
new("John", "Smith", dateOnly)
};
People = new ObservableCollection<Person>(people);
}
}
public class Person
{
public required string User { get; init; }
public required string RatingOfUser { get; init; }
public required DateOnly Date { get; init; }
public Person(string user,
string ratingOfUser,
DateOnly date)
{
User = user;
RatingOfUser = ratingOfUser;
Date = date;
}
}
}
И в таком случае мне лезет ошибка Required member 'Person.User' must be set in the object initializer or attribute constructor.
Однако при такой инициализации ошибки нет:
new Person()
{
User = "John Smith",
RatingOfUser = "Excellent",
Data = DateTime.Today.Date
}
Но эта инициализация слишком многословная, можно ли сделать инициализацию просто через конструктор, как я попытался в первом случае?