Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
Content = "{Binding Path=Value}"/> <Button Content="Click" Height="200" FontSize = "{Binding Path=Value}"/></StackPanel>Здесь свойство
DataContextStackPanelLabelButton
Форматирование привязанных данных
Вместо ожидаемого целого числа для представления положения ползунка тип
ScrollBardoubleLabel61.0576923076923616263При желании форматировать данные можно добавить свойство
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}"/>На заметку! При привязке свойства
TextStringFormatContentПреобразование данных с использованием интерфейса IValueConverter
Если требуется нечто большее, чем просто форматирование данных, тогда можно создать специальный класс, реализующий интерфейс
IValueCVonverterSystem.Windows.DataIValueCVonverterВместо использования свойства форматирования можно применять преобразователь значений для отображения целых чисел внутри элемента управления
LabelMyDoubleConverterusing 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()ScrollBarContentLabelobjectdoubleМетод
ConvertBack()valueTextBox99.999Convert()ConvertBack()nullConvertBack()TextBox