概述
这个问题一般出现在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="true"></Condition>
<Condition Binding="{Binding ElementName=ckb2, Path=IsChecked, Converter={StaticResource NullableToBooleanConverter}}" Value="true"></Condition>
</MultiDataTrigger.Conditions>
<Setter Property="IsEnabled" Value="False"></Setter>
</MultiDataTrigger>
</Style.Triggers>
</Style>
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=ckb1, Path=IsChecked, Converter={StaticResource NullableToBooleanConverter}}" Value="true"></Condition>
<Condition Binding="{Binding ElementName=ckb2, Path=IsChecked, Converter={StaticResource NullableToBooleanConverter}}" Value="true"></Condition>
</MultiDataTrigger.Conditions>
<Setter Property="IsEnabled" Value="False"></Setter>
</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 值。的全部内容,希望文章能够帮你解决WPF错误:必须使“Property”具有非 null 值。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复