Bir komutun, bu boole true değerine ayarlı olarak tetiklenmesini önlemek veya izin vermek için bir bool özelliği kurdum.Bool durumunda bir InvalidOperationException nasıl çözümlenir?
Geçerli uygulamada, bool'u true olarak ayarlamadan önce, bool içinde belirli değerlerin boş olmadığını kontrol ediyorum.
Soru:
Neden bool içinde koşuluyla bir InvalidOperationException alabilirim? kod
Genel Bakış:
Bool özelliği CanSendCommand
, aşağıdaki Röle komutunda bir parametre olarak kullanılır: sınıf initilization üzerinde bir yük yöntemde ilk olarak adlandırılır
private bool CanSendCommand()
{
if (SelectedParkDuration.Value != null && RegNumber != string.Empty && SelectedZone.ZoneName != null)
{
return true;
}
return false;
}
TagRequestCommand
. Komutun kendisi, UI üzerinde bir düğmeye basmakla sınırlıdır. ? Bağlam RegNumber için
, SelectedParkingDuration tipi dizedir ZamanGeçişi ve SelectedZone.ZoneName bir mülkte bir dizedir: Ben istisna ayrıntıları kopyaladıktan
private void LoadCommands()
{
TagRequestCommand = new RelayCommand(async() =>
{
await SendParkingTagSMSRequest();
} ,CanSendCommand);
}
, durum için bana değerleri gösterilmektedir bool durumunda ele alındığında tamam olması gereken null. Görüyorsunuz ki "Nullable nesnesinin bir değere sahip olması gerektiğini" gösteren bir satır var, bu da bana TimesParkDuration öğesinin bir değere sahip olması gerektiğini söyler. Ama bir değer seçilmeden önce nasıl bir değere sahip olabileceğinden emin değilim. çalışma zamanı sırasında otomobil pencerelerin
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:
Ekran Görüntüsü: