1. 程式人生 > >WPF錯誤:必須使“Property”具有非 null 值。

WPF錯誤:必須使“Property”具有非 null 值。

sta 指定 else 問題 inf led data- roman 取代

這個問題一般出如今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>


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 值。