私はboolプロパティを設定して、そのブール値がtrueに設定されていることに基づいてコマンドを実行させないようにしました。Bool条件でInvalidOperationExceptionを解決するにはどうすればよいですか?
現在の実装では、boolをtrueに設定する前に特定の値がnullでないことをブール内でチェックします。
質問:
は、なぜ私はブール内の条件にInvalidOperationExceptionが入手できますか?コードの
概要:
ブールプロパティCanSendCommand
、以下リレーコマンドにPARAMとして使用される:クラスinitilizationの負荷方法で最初に呼び出され
private bool CanSendCommand()
{
if (SelectedParkDuration.Value != null && RegNumber != string.Empty && SelectedZone.ZoneName != null)
{
return true;
}
return false;
}
TagRequestCommand
。コマンド自体は、UIのボタンを押すことにバインドされています。
状況についてRegNumberがSelectedParkingDurationでのTimeSpanで、SelectedZone.ZoneNameは、敷地内の文字列で、文字列型である:?
private void LoadCommands()
{
TagRequestCommand = new RelayCommand(async() =>
{
await SendParkingTagSMSRequest();
} ,CanSendCommand);
}
私は私の状態の値を伝える例外の詳細を、コピーしましたbool状態で処理されても問題ありません。私は、 "Nullableオブジェクトに値を持たなければならない"ということを指す線があることを知っています。これは、TimespanのSelectedParkDurationプロパティに値が必要な可能性があることを示しています。しかし、値が選択される前にどのように値を持つことができるかわかりません。実行時に自動車の窓の
System.InvalidOperationException was unhandled by user code
HResult=-2146233079
Message=Nullable object must have a value.
Source=mscorlib
StackTrace:
at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
at System.Nullable`1.get_Value()
at Parking_Tag_Picker_WRT.ViewModel.TagRequestViewModel.CanSendCommand()
InnerException:
スクリーンショット: