首页 > 代码库 > WPF错误:必须使“Property”具有非 null 值。
WPF错误:必须使“Property”具有非 null 值。
这个问题一般出如今Triggers中Property指定的类型为Nullable。
解决的方法就是用DataTrigger取代Trigger, 然后用Binding+Converter转换为详细非Null值。
比方:
<Style x:Key="DisableStyle" TargetType="Button">
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=ckb1, Path=IsChecked, Converter={StaticResource NullableToBooleanConverter}}" Value=http://www.mamicode.com/"true">
<Condition Binding="{Binding ElementName=ckb2, Path=IsChecked, Converter={StaticResource NullableToBooleanConverter}}" Value=http://www.mamicode.com/"true">
</MultiDataTrigger.Conditions>
<Setter Property="IsEnabled" Value=http://www.mamicode.com/"False">
</MultiDataTrigger>
</Style.Triggers>
</Style>
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=ckb1, Path=IsChecked, Converter={StaticResource NullableToBooleanConverter}}" Value=http://www.mamicode.com/"true">
<Condition Binding="{Binding ElementName=ckb2, Path=IsChecked, Converter={StaticResource NullableToBooleanConverter}}" Value=http://www.mamicode.com/"true">
</MultiDataTrigger.Conditions>
<Setter Property="IsEnabled" Value=http://www.mamicode.com/"False">
</MultiDataTrigger>
</Style.Triggers>
</Style>
NullableToBooleanConverter:
public object Convert( object value , Type targetType, object parameter, CultureInfo culture )
{
Nullable<bool > isCheck = value as Nullable< bool>;
if (null == isCheck)
{
return false ;
}
else
{
return isCheck .Value;
}
}
WPF错误:必须使“Property”具有非 null 值。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。