Читаем Язык программирования C#9 и платформа .NET5 полностью

Убедитесь, что в проекте 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. Щелкните правой кнопкой мыши на имени этого файла в окне Solution Explorer, выберите в контекстном меню пункт Properties (Свойства) и установите свойство Copy То Output Directory (Копировать в выходной каталог) в Copy always (Всегда копировать). Вы можете добиться того же самого результата с помощью файла проекта:

 

    Always

 

Модифицируйте файл 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 и кодом С#.

<p id="AutBody_Root1165"><strong>Роль свойств зависимости</strong></p>

Подобно любому API-интерфейсу .NET Core внутри WPF используется каждый член системы типов .NET Core (классы, структуры, интерфейсы, делегаты, перечисления) и каждый член типа (свойства, методы, события, константные данные, поля только для чтения и т.д.). Однако в WPF также поддерживается уникальная программная концепция под названием свойство зависимости.

Как и "нормальное" свойство .NET Core (которое в литературе, посвященной WPF, часто называют свойством CLR), свойство зависимости можно устанавливать декларативно с помощью разметки XAML или программно в файле кода. Кроме того, свойства зависимости (подобно свойствам CLR) в конечном итоге предназначены для инкапсуляции полей данных класса и могут быть сконфигурированы как доступные только для чтения, только для записи или для чтения и записи.

Перейти на страницу:

Похожие книги

97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT