[英]'accessibilityobject' threw an exception of type 'system.invalidoperationexception'
[英]DateTime, an exception of type 'System.InvalidOperationException'
使用我正在使用的TimePicker來解決這個問題。 當我沒有選擇任何時候我收到此錯誤:
An exception of type 'System.InvalidOperationException'
發生異常的地方是這一行:
DateTime break1S = (DateTime)startBreak1.Value;
問題是當你沒有在選擇器中設置任何值時它設置一個默認值。 但為什么不使用呢? 以下是局部變量的外觀:
你可以看到break1S有一個值,所以問題是什么。
這是整個代碼:
DateTime date = (DateTime)datePicker.Value;
DateTime start = (DateTime)startingTime.Value;
DateTime end = (DateTime)endingTime.Value;
DateTime break1S = (DateTime)startBreak1.Value;
DateTime break1E = (DateTime)endBreak1.Value;
DateTime break1S = (DateTime)startBreak1.Value;
DateTime break1E = (DateTime)endBreak1.Value;
DateTime break2S = (DateTime)startBreak2.Value;
DateTime break2E = (DateTime)endBreak2.Value;
_nestedDateStart = new DateTime(date.Year, date.Month, date.Day, start.Hour, start.Minute, 0);
_nestedDateEnd = new DateTime(date.Year, date.Month, date.Day, end.Hour, end.Minute, 0);
_nestedDateStartBreak1 = new DateTime(date.Year, date.Month, date.Day, break1S.Hour, break1S.Minute, 0);
_nestedDateEndBreak1 = new DateTime(date.Year, date.Month, date.Day, break1E.Hour, break1E.Minute, 0);
好吧,你應該檢查那一刻“startBreak1”項目中的內容。 可能是從startBreak1.Value到DateTime的強制轉換導致此錯誤。
Break1S有一個值,但這與問題無關,因為ir是1月1日0001 - 任何DateTime結構的初始值。 問題很可能是因為強制轉換(如果startBreak1.Value是DateTime?或Nullable,那么你的選擇是使用另一種類型的構造,即
DateTime break1S = startBreak1.Value.HasValue ? startBreak1.Value.Value : DateTime.MinValue;
請注意,而不是DateTime.MinValue您可以使用DateTime.Now,DateTime.Today,DateTime.Now.AddMinutes(-10)或您認為應該適當的任何內容默認情況下,如果startBreak1.Value沒有設置實際值。 )
我不是Windows Phone的專家,但在我看來,TimePicker控件的Value屬性被定義為DateTime? 意思是可以為空的DateTime。
當您嘗試將其分配給DateTime變量(不能接受空值)並且TimePicker為null時,您將獲得InvalidOperationException
你可以試試
startBreak1 = startBreak1.Value ?? DateTime.MinValue;
檢查DateTimePicker的“MinDate”和“MaxDate”屬性。
'1/1/0001 12:00:00 AM'可能不會落在他們之間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.