Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
Content = "{Binding Path=Value}"/>
<Button Content="Click" Height="200" FontSize = "{Binding Path=Value}"/>
</StackPanel>
Здесь свойство
DataContext
StackPanel
Label
Button

Форматирование привязанных данных
Вместо ожидаемого целого числа для представления положения ползунка тип
ScrollBar
double
Label
61.0576923076923
61
62
63
При желании форматировать данные можно добавить свойство
ContentStringFormat
<Label x:Name="labelSBThumb" Height="30" BorderBrush="Blue"
BorderThickness="2" Content = "{Binding Path=Value}"
ContentStringFormat="The value is:
{0:F0}"/>
Если в спецификаторе формата отсутствует какой-либо текст, тогда его понадобится предварить пустым набором фигурных скобок, который является управляющей последовательностью для XAML. Такой прием уведомляет процессор о том, что следующие за
{}
<Label x:Name="labelSBThumb" Height="30" BorderBrush="Blue"
BorderThickness="2" Content = "{Binding Path=Value}"
ContentStringFormat="{}{0:F0}"/>
На заметку! При привязке свойства
Text
StringFormat
Content
Преобразование данных с использованием интерфейса IValueConverter
Если требуется нечто большее, чем просто форматирование данных, тогда можно создать специальный класс, реализующий интерфейс
IValueCVonverter
System.Windows.Data
IValueCVonverter
Вместо использования свойства форматирования можно применять преобразователь значений для отображения целых чисел внутри элемента управления
Label
MyDoubleConverter
using System;
using System.Windows.Data;
namespace WpfControlsAndAPIs
{
public class MyDoubleConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
<b> // Преобразовать значение double в int.</b>
double v = (double)value;
return (int)v;
}
public object ConvertBack(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
<b> // Поскольку заботиться здесь о "двунаправленной" привязке</b>
<b> // не нужно, просто возвратить значение value.</b>
return value;
}
}
}
Метод
Convert()
ScrollBar
Content
Label
object
double
Метод
ConvertBack()
value
TextBox
99.9
99
Convert()
ConvertBack()
null
ConvertBack()
TextBox