Жанры книг
Мы в соц.сетях
ParaKnig📚 » Компьютеры и Интернет » Базы данных » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
<< На главную

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

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

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 509 510 511 512 513 514 515 516 517 ... 642
Перейти на страницу:

Чтобы применить построенный преобразователь в разметке, сначала нужно создать локальный ресурс, представляющий только что законченный класс. Не переживайте по поводу механики добавления ресурсов; тема будет детально раскрыта в нескольких последующих главах. Поместите показанную ниже разметку сразу после открывающего дескриптора Window:

&lt;Window.Resources&gt;

  &lt;local:MyDoubleConverter x:Key=&quot;DoubleConverter&quot;/&gt;

&lt;/Window.Resources&gt;

Далее обновите конструкцию привязки для элемента управления Label:

&lt;Label x:Name=&quot;labelSBThumb&quot; Height=&quot;30&quot; BorderBrush=&quot;Blue&quot;

  BorderThickness=&quot;2&quot;

  Content = &quot;{Binding Path=Value,

  Converter={StaticResource DoubleConverter}}&quot; /&gt;

Теперь после запуска приложения вы будете видеть только целые числа.

Установление привязок данных в коде

Специальный преобразователь данных можно также регистрировать в коде. Начните с очистки текущего определения элемента управления Label внутри вкладки Data Binding, чтобы расширение разметки {Binding} больше не использовалось:

&lt;Label x:Name=&quot;labelSBThumb&quot; Height=&quot;30&quot; BorderBrush=&quot;Blue&quot;

    BorderThickness=&quot;2&quot; /&gt;

Добавьте оператор using для System.Windows.Data и в конструкторе окна вызовите новый закрытый вспомогательный метод по имени SetBindings(), код которого показан ниже:

<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(&quot;Value&quot;)

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

<b>        // Вызвать метод SetBindingO объекта Label.</b>

        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:

&lt;TabItem x:Name=&quot;tabDataGrid&quot; Header=&quot;DataGrid&quot;&gt;

  &lt;StackPanel&gt;

    &lt;DataGrid x:Name=&quot;gridInventory&quot; Height=&quot;288&quot;/&gt;

  &lt;/StackPanel&gt;

&lt;/TabItem&gt;

С помощью диспетчера пакетов NuGet добавьте в проект следующие пакеты:

•  Microsoft.EntityFrameworkCore

•  Microsoft.EntityFrameworkCore.SqlServer

•  Microsoft.Extensions.Configuration

•  Microsoft.Extensions.Configuration.Json

Если вы предпочитаете добавлять пакеты в интерфейсе командной строки .NET Core, тогда введите приведенные далее команды (в каталоге решения):

1 ... 509 510 511 512 513 514 515 516 517 ... 642
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю бесплатно.
Комментарии
Открыть боковую панель
Комментарии
Лариса
Лариса 11.03.2026 - 20:17
Странно,здесь имя девочки Аграфена,а на других сайтах я прослушала три книги этого цикла с именем Дарвина.Зачем менять имя и путать читателей? Опечатка- не Дарвина,  а  Дарина.
Григорий
Григорий 09.04.2025 - 22:24
Лучшая книга всех времен
Женя
Женя 02.04.2025 - 16:08
Любимая книга