Убедитесь, что в проекте AutoLot.Dal
AutoLot.Dal.Models. Добавьте в файл MainWindow.xaml.cs следующие пространства имен:using System.Linq;
using AutoLot.Dal.EfStructures;
using AutoLot.Dal.Repos;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
Добавьте в MainWindow.cs
IConfiguration и класса ApplicationDbContext:private IConfiguration _configuration;
private ApplicationDbContext _context;
Добавьте новый метод по имени GetConfigurationAndContext
IConfiguration и класса ApplicationDbContext и вызовите его в конструкторе. Вот полный код метода:private void GetConfigurationAndDbContext
{
_configuration = new ConfigurationBuilder
.SetBasePath(Directory.GetCurrentDirectory)
.AddJsonFile("appsettings.json", true, true)
.Build;
var optionsBuilder =
new DbContextOptionsBuilder
var connectionString =
_configuration.GetConnectionString("AutoLot");
optionsBuilder.UseSqlServer(connectionString,
sqlOptions => sqlOptions.EnableRetryOnFailure);
_context = new ApplicationDbContext(optionsBuilder.Options);
}
Добавьте в проект новый файл JSON по имени appsettings.json
Модифицируйте файл JSON, как показано ниже (приведя строку подключения в соответствие со своей средой):
{
"ConnectionStrings": {
"AutoLotFinal": "server=.,5433;Database=AutoLot;
User Id=sa;Password=P@ssw0rd;"
}
}
Откройте файл MainWindow.xaml.cs
ConfigureGrid и вызовите ее в конструкторе после конфигурирования ApplicationDbContext. Понадобится добавить лишь несколько строк кода:private void ConfigureGrid
{
using var repo = new CarRepo(_context);
gridInventory.ItemsSource = repo
.GetAllIgnoreQueryFilters
.ToList
.Select(x=> new {
x.Id,
Make=x.MakeName,
x.Color,
x.PetName
});
}
Запустив проект, вы увидите данные, заполняющие сетку. При желании сделать сетку более привлекательной можно применить окно Properties
в Visual Studio для редактирования свойств сетки, чтобы улучшить ее внешний вид.На этом текущий пример завершен. В последующих главах вы увидите в действии другие элементы управления, но к настоящему моменту вы должны чувствовать себя увереннее с процессом построения пользовательских интерфейсов в Visual Studio, а также при работе с разметкой XAML и кодом С#.
Роль свойств зависимости
Подобно любому API-интерфейсу .NET Core внутри WPF используется каждый член системы типов .NET Core (классы, структуры, интерфейсы, делегаты, перечисления) и каждый член типа (свойства, методы, события, константные данные, поля только для чтения и т.д.). Однако в WPF также поддерживается уникальная программная концепция под названием
Как и "нормальное" свойство .NET Core (которое в литературе, посвященной WPF, часто называют
Бьёрн Страуструп , Ирина Сергеевна Козлова , Бьерн Страуструп , Валерий Федорович Альмухаметов
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT