我正在开发Windows应用商店(8.1)应用程序。
我有这个控件,它有一个可以为null的int属性(类型为“int?”),当我尝试通过Style将它设置为int时,我收到错误。
<Setter Property="Minimum" Value="0" />
Error Cannot assign to nullable type on property Minimum
有什么想法吗?
答案 0 :(得分:0)
以下示例描述了解决方案,根据您的要求进行调整。
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>
答案 1 :(得分:0)
您可以使用TargetNullValue属性来实现此目的。使用下面的代码,
TargetNullValue={x:Static sys:String.Empty}
注意:
sys
是mscorlib中System的导入xml命名空间:
xmlns:sys="clr-namespace:System;assembly=mscorlib"
希望这会有所帮助..