Как установить значение свойства, которое можно обнулять, с помощью стиля Setter?
Я занимаюсь разработкой приложения для Магазина Windows (8.1).
У меня есть этот элемент управления, который имеет свойство int обнуляемого типа (типа "int?"), Когда я пытаюсь установить его для int через стиль, я получаю ошибку.
<Setter Property="Minimum" Value="0" />
Error Cannot assign to nullable type on property Minimum
Есть идеи?
2 ответа
Следующий пример изображает решение, приспособьте его к вашим требованиям.
C#:
class IsNullToBoolConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value == null;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
XAML:
<Window.Resources>
<local:IsNullToBoolConverter x:Key="IsNullToBoolConverter"/>
</Window.Resources>
<TextBlock Text="Text">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding Age, Converter={StaticResource IsNullToBoolConverter}}" Value="False">
<Setter Property="FontSize" Value="55"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
Вы можете достичь этого, используя свойство TargetNullValue. Используйте приведенный ниже код,
TargetNullValue={x:Static sys:String.Empty}
Замечания:
sys
импортированное пространство имен xml для System в mscorlib:
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Надеюсь, это поможет..