TextBox должен отображать замаскированную сумму в долларах для определенных привилегий доступа.Я создал класс конвертера (унаследованный от IValueConverter) для обработки маскирования путем реализации метода convert.
public object Convert(object value, Type targetType, object parameter,
CultureInfo culture)
Третий параметр передается true, если требуется маскирование, иначе false.
Вызывается так:
CurrencyCOnverter converter = new CurrencyConverter();
this._textbox1.Text = converter.Convert(Amount, typeof(string), !this.IsSuperUser,
CurrentCulture).ToString();
У меня около 12 текстовых полей в пользовательском интерфейсе.Вместо того, чтобы делать это в 12 местах, я определил DataTemplates в словаре ресурсов, который выглядит следующим образом:
<DataTemplate x:Key="MaskNormalBackgroundTbx">
<TextBlock TextAlignment="Right" VerticalAlignment="Center"
TextWrapping="WrapWithOverflow"
Text="{Binding "Amount"
Converter={StaticResource CurrencyDisplayConverter},
ConverterParameter=true}" />
</DataTemplate>
<DataTemplate x:Key="NoMaskNormalBackgroundTbx">
<TextBlock TextAlignment="Right" VerticalAlignment="Center"
TextWrapping="WrapWithOverflow"
Text="{Binding "Amount"
Converter={StaticResource CurrencyDisplayConverter},
ConverterParameter=false}" />
</DataTemplate>
Мой вопрос: есть ли способ, которым я могу назначить этот шаблон для текстового поля, создав пользовательское текстовое поле так же, как мыназначить шаблоны данных для ListBox?
Спасибо,
Меган.