Ich habe eine bool-Eigenschaft eingerichtet, um zu verhindern oder zu erlauben, dass ein Befehl ausgelöst wird, basierend darauf, dass bool auf true gesetzt ist.Wie kann eine InvalidOperationException bei Bool-Bedingung behoben werden?
In der aktuellen Implementierung überprüfe ich innerhalb der Bool, dass bestimmte Werte nicht Null sind, bevor Sie die Bool auf True setzen.
Frage:
Warum erhalte ich eine InvalidOperationException über den Zustand innerhalb des Bool?
Übersicht Code:
Bool Eigenschaft CanSendCommand
, die im Folgenden als param im Relay-Befehl verwendet wird:
private bool CanSendCommand()
{
if (SelectedParkDuration.Value != null && RegNumber != string.Empty && SelectedZone.ZoneName != null)
{
return true;
}
return false;
}
TagRequestCommand
, die zunächst in einer Load-Methode auf Klasse initilization genannt wird. Der Befehl selbst ist an einen Tastendruck auf der Benutzeroberfläche gebunden.
Für Kontext RegNumber ist Typ string, SelectedParkingDuration ist Span und SelectedZone.ZoneName ist eine Zeichenfolge innerhalb einer Eigenschaft:
private void LoadCommands()
{
TagRequestCommand = new RelayCommand(async() =>
{
await SendParkingTagSMSRequest();
} ,CanSendCommand);
}
ich die Ausnahmedetails kopiert haben, die mir die Werte für den Zustand erzählt sind null, was okay sein sollte, da es im bool-Zustand gehandhabt wird. Ich sehe dann, dass es eine Linie gibt, die auf ein "Nullable-Objekt muss einen Wert haben" zeigt, der mir sagt, dass meine Zeitspannen-Eigenschaft SelectedParkDuration einen Wert haben sollte. Aber ich bin mir nicht sicher, wie es einen Wert haben kann, bevor ein Wert ausgewählt wurde.
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:
Screenshot der Autos Fenster während der Laufzeit: