Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
Чтобы применить построенный преобразователь в разметке, сначала нужно создать локальный ресурс, представляющий только что законченный класс. Не переживайте по поводу механики добавления ресурсов; тема будет детально раскрыта в нескольких последующих главах. Поместите показанную ниже разметку сразу после открывающего дескриптора
Window<Window.Resources> <local:MyDoubleConverter x:Key="DoubleConverter"/></Window.Resources>Далее обновите конструкцию привязки для элемента управления
Label<Label x:Name="labelSBThumb" Height="30" BorderBrush="Blue" BorderThickness="2" Content = "{Binding Path=Value, Converter={StaticResource DoubleConverter}}" />Теперь после запуска приложения вы будете видеть только целые числа.
Установление привязок данных в коде
Специальный преобразователь данных можно также регистрировать в коде. Начните с очистки текущего определения элемента управления
LabelData Binding{Binding}<Label x:Name="labelSBThumb" Height="30" BorderBrush="Blue" BorderThickness="2" />Добавьте оператор
usingSystem.Windows.DataSetBindings()<b>using System.Windows.Data;</b>...namespace WpfControlsAndAPIs{ public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); ... SetBindings(); } ... private void SetBindings() {<b> // Создать объект Binding.</b> Binding b = new Binding {<b> // Зарегистрировать преобразователь, источник и путь.</b> Converter = new MyDoubleConverter(), Source = this.mySB, Path = new PropertyPath("Value")<b> // Вызвать метод SetBindingO объекта Label.</b> this.labelSBThumb.SetBinding(Label.ContentProperty, b); } } }}Единственная часть метода
SetBindings()SetBinding()ContentPropertyLabelLabelPropertyLabelПостроение вкладки DataGrid
В предыдущем примере привязки данных иллюстрировался способ конфигурирования двух (или большего количества) элементов управления для участия в операции привязки данных. Наряду с тем, что это удобно, возможно также привязывать данные из файлов XML, базы данных и объектов в памяти. Чтобы завершить текущий пример, вы должны спроектировать финальную вкладку элемента управления
DataGridInventoryAutoLotКак и с другими вкладками, начните с замены текущего элемента
GridStackPanelStackPanelDataGridgridInventory<TabItem x:Name="tabDataGrid" Header="DataGrid"> <StackPanel> <DataGrid x:Name="gridInventory" Height="288"/> </StackPanel></TabItem>С помощью диспетчера пакетов NuGet добавьте в проект следующие пакеты:
•
Microsoft.EntityFrameworkCore•
Microsoft.EntityFrameworkCore.SqlServer•
Microsoft.Extensions.Configuration•
Microsoft.Extensions.Configuration.JsonЕсли вы предпочитаете добавлять пакеты в интерфейсе командной строки .NET Core, тогда введите приведенные далее команды (в каталоге решения):