42.64K
Категория: ПрограммированиеПрограммирование

Binding C#. Avalonia

1.

Binding
C#. Avalonia

2.

Data Binding
Привязка данных используется отображения данных, а также для настройки взаимодействия
пользователя с интерфейсом программы.
В указанной схеме, Control - элемент к которому идет привязка, а Object - источник данных.
Сопоставление привязанных данных указывается в XML файлах, между аттрибутами элементов Avalonia, и
свойствами объектов приложения.
<SomeControl Attribute="{Binding PropertyName}" />

3.

Однонаправленные и двунаправленные
привязки
Двунаправленные привязки: изменение свойства, вызывает
изменение элемента, а изменение элемента, изменяет и свойство.
<TextBox Text="{Binding FirstName}" />
Если пользователь изменяет текст в TextBox, то значение свойства
FirstName будет также изменено автоматически.

4.

Однонаправленные и двунаправленные
привязки
Изменение привязанного свойства, вызывает изменение в
привязанном элементе, однако пользователь не может изменить
значение в самом элементе. Примером такой ситуации является
TextBlock, который доступен только для чтения:
<TextBlock Text="{Binding StatusMessage}" />

5.

Определение свойств для привязки данных
Свойства – специальные методы доступа. Они обеспечивают простой доступ к полям классов и структур, узнать их значение
или выполнить их установку.
В общем виде:
[модификаторы] тип_свойства название_свойства
{
get { действия, выполняемые при получении значения свойства}
set { действия, выполняемые при установке значения свойства}
}
Вначале определения свойства могут идти различные модификаторы, в частности, модификаторы доступа. Затем указывается
тип свойства, после которого идет название свойства. Полное определение свойства содержит два блока: get и set.
В блоке get выполняются действия по получению значения свойства. В этом блоке с помощью оператора return возвращаем
некоторое значение.
В блоке set устанавливается значение свойства. В этом блоке с помощью параметра value мы можем получить значение,
которое передано свойству.

6.

Определение свойств для привязки данных
Пример использования свойств:
Person person = new Person();
person.Name = "Tom";
// Получаем значение свойства и присваиваем его переменной - срабатывает блок Get
string personName = person.Name;
Console.WriteLine(personName); // Tom
class Person{
private string name = "Undefined";
public string Name{
get{ return name; // возвращаем значение свойства }
set{name = value; // устанавливаем новое значение свойств}
}
}

7.

Пример
cs
xaml
public string nameProd { get; set; }
public string priceProd { get; set; }
<ListBox Name="ProdList">
<ListBox.ItemTemplate>
<DataTemplate>
В отдельном
классе Product
public List<Product> products = new List<Product>();
public void BtnInsert_OnClick(object? sender, RoutedEventArgs e){
this.textblock.Text = "Введите наименование и цену товара";
<StackPanel>
editing.Children.Add(this.textblock);
<TextBlock Text="{Binding nameProd}">
editing.Children.Add(this.textbox);
</TextBlock>
editing.Children.Add(this.textbox2);
<TextBlock Text="{Binding priceProd}">
editing.Children.Add(this.btnInsertOk);
</TextBlock>
btnInsertOk.Click += new EventHandler<RoutedEventArgs>(this.BtnInsertOk_OnClick);
</StackPanel>
</DataTemplate>
}
public void BtnInsertOk_OnClick(object? sender, RoutedEventArgs e)
{
</ListBox.ItemTemplate>
products.Add(new Product()
</ListBox>
{nameProd = textbox.Text,
<Button Click="BtnInsert_OnClick">
priceProd = textbox2.Text });
</Button>
ProdList.Items = products;
}
English     Русский Правила