Добавьте оператор using
для System.Windows.Data
и в конструкторе окна вызовите новый закрытый вспомогательный метод по имени SetBindings
, код которого показан ниже:
using System.Windows.Data;
...
namespace WpfControlsAndAPIs
{
public partial class MainWindow : Window
{
public MainWindow
{
InitializeComponent;
...
SetBindings;
}
...
private void SetBindings
{
// Создать объект Binding.
Binding b = new Binding
{
// Зарегистрировать преобразователь, источник и путь.
Converter = new MyDoubleConverter,
Source = this.mySB,
Path = new PropertyPath("Value")
// Вызвать метод SetBindingO объекта Label.
this.labelSBThumb.SetBinding(Label.ContentProperty, b);
}
}
}
}
Единственная часть метода SetBindings
, которая может выглядеть несколько необычной — вызов SetBinding
. Обратите внимание, что первый параметр обращается к статическому, доступному только для чтения полю ContentProperty
класса Label
. Как вы узнаете далее в главе, такая конструкция называется Label
в рассматриваемом случае), за которым следует обращение к внутреннему свойству с добавлением к его имени суффикса Property
. Запустив приложение, можно удостовериться в том, что элемент Label
отображает только целые числа.
Построение вкладки DataGrid
В предыдущем примере привязки данных иллюстрировался способ конфигурирования двух (или большего количества) элементов управления для участия в операции привязки данных. Наряду с тем, что это удобно, возможно также привязывать данные из файлов XML, базы данных и объектов в памяти. Чтобы завершить текущий пример, вы должны спроектировать финальную вкладку элемента управления DataGrid
, которая будет отображать информацию, извлеченную из таблицы Inventory
базы данных AutoLot
.
Как и с другими вкладками, начните с замены текущего элемента Grid
панелью StackPanel
, напрямую обновив разметку XAML в Visual Studio. Внутри нового элемента StackPanel
определите элемент управления DataGrid
по имени gridInventory
:
С помощью диспетчера пакетов NuGet добавьте в проект следующие пакеты:
• Microsoft.EntityFrameworkCore
• Microsoft.EntityFrameworkCore.SqlServer
• Microsoft.Extensions.Configuration
• Microsoft.Extensions.Configuration.Json
Если вы предпочитаете добавлять пакеты в интерфейсе командной строки .NET Core, тогда введите приведенные далее команды (в каталоге решения):
dotnet add WpfControlsAndAPIs package Microsoft.EntityFrameworkCore
dotnet add WpfControlsAndAPIs package Microsoft.EntityFrameworkCore.SqlServer
dotnet add WpfControlsAndAPIs package Microsoft.Extensions.Configuration
dotnet add WpfControlsAndAPIs package Microsoft.Extensions.Configuration.Json
Затем щелкните правой кнопкой мыши на имени решения, выберите в контекстном меню пункт Add?Existing Project (Добавить?Существующий проект) и добавьте проекты AutoLot.Dal
и AutoLot.Dal.Models
из главы 23, а также ссылки на эти проекты. Сделать это можно также с помощью интерфейса командной строки, выполнив показанные ниже команды (вам придется скорректировать пути к проектам согласно требованиям имеющейся операционной системы):
dotnet sln .\Chapter25_AllProjects.sln add ..\Chapter_23\AutoLot.Models
dotnet sln .\Chapter25_AllProjects.sln add ..\Chapter_23\AutoLot.Dal
dotnet add WpfControlsAndAPIs reference ..\Chapter_23\AutoLot.Models
dotnet add WpfControlsAndAPIs reference ..\Chapter_23\AutoLot.Dal
Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT