I don't know why I get this kind of error. It happens sometimes, and I suspicious of my code that still have thread running while I close my Application. So when I open again it happens.
Value cannot be null. Parameter name: source StackTree : at System.Linq.Enumerable.Where[TSource](IEnumerable`1 source, Func`2 predicate) at Susenas2015.ViewModels.Kuesioner.VMVsen15_KVal.SettingValidationAndRange(List`1 listTextBox, List`1 listCheckBox, TabControl tabControl) in d:\handita\Office\Project\Susenas 2015\Aplikasi Template Survei\Susenas2015\ViewModels\Kuesioner\VMVsen15_KVal.cs:line 430 at Susenas2015.ViewModels.Kuesioner.VMVsen15_KVal.vSen15_K_Loaded(Object sender, RoutedEventArgs e) in d:\handita\Office\Project\Susenas 2015\Aplikasi Template Survei\Susenas2015\ViewModels\Kuesioner\VMVsen15_KVal.cs:line 846 at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e) at System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent) at System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root) at MS.Internal.LoadedOrUnloadedOperation.DoWork() at System.Windows.Media.MediaContext.FireLoadedPendingCallbacks() at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks() at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget) at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget) at System.Windows.Media.MediaContext.Resize(ICompositionTarget resizedCompositionTarget) at System.Windows.Interop.HwndTarget.OnResize() at System.Windows.Interop.HwndTarget.HandleMessage(WindowMessage msg, IntPtr wpa`
My code here it is
private void SettingValidationAndRange(List<TextBox> listTextBox, List<CheckBox> listCheckBox, TabControl tabControl) { List<string> listNotDeclare = new List<string>(); foreach (var textB in listTextBox) { if (textB.Tag != null) break; Metadata metadata = ListMetadataKor.Where( x => "text" + x.Field == textB.Name // this line 430 ).FirstOrDefault(); if (metadata == null) { if (!string.IsNullOrEmpty(textB.Name)) listNotDeclare.Add(textB.Name); } else { metadata.TabControl = tabControl; textB.Tag = metadata; } textB.AddEvents(); textB.AutomateFocus(); } if (listNotDeclare.Count > 0) { Clipboard.SetText(string.Join(",", listNotDeclare.ToArray())); Dialog.Info("Ada beberapa Metadata tidak ditemukan data sudah dicopy ke clipboard"); } }
When I start my application for my first time, it doesn't get any error. It happens when I open in 2nd or more. And if I open my application it would stuck in that code.
How I can solve this? I'm pretty sure that my Property ListMetadataKor
is not null
And ListMetadataKor is instance of List<Metadata>
object that I have created. It happens only in rare cases. And I don't know to solve it
This is my code in image
I fill ListMetadataKor
with this code
BWHelper.Run((s, e) => { DataTable dataMetaDataKOR = ExcelHelper.GetDataTableFromExcel( AppConstants.FILE_METADATA, AppConstants.SHEET_METADATA_KOR ); DataTable dataKonsistensiKOR = ExcelHelper.GetDataTableFromExcel( AppConstants.FILE_METADATA, AppConstants.SHEET_KONSISTENSI_KOR ); listKonsistensiKor = Tools.ToolConvert.GetKonsistensi(dataKonsistensiKOR); listMetadataKor = Tools.ToolConvert.GetMetadata(dataMetaDataKOR); foreach (Metadata metadata in listMetadataKor) { metadata.Range.ProsesRange(); } }, (s, e) => { try { kor = new VSEN15_K() { Title = "Validasi Susenas - KOR" }; kor.DataContext = new VMVsen15_KVal(rtSusenas.MasterRT, kor, this, listKonsistensiKor, listMetadataKor); kor.PreviewKeyDown += EventsCollection.EnterAsTabPreviewKeyDown; vmHome.HideLoading(); UpdateMetaDataEntriKOR(RTSusenas.MasterRT); kor.ShowDialog(); } catch (Exception Ex) { vmHome.HideLoading(); Dialog.Error(Ex); } });
And then I throw the variable through constructor of my class
public VMVsen15_KVal( MasterRT masterRT, VSEN15_K vSen15_K, IDaftarSusenas vmDaftarRTSusenas, List<Konsistensi> listKonsistensiKor, List<Metadata> listMetadataKor ) { ListArtDetail = new ObservableCollection<ARTDetailVal>(); this.ListKonsistensiKor = listKonsistensiKor; this.ListMetadataKor = listMetadataKor;
My tools konsistensi like this
public static List<Konsistensi> GetKonsistensi(DataTable dataTable) { List<Konsistensi> listMetadata = new List<Konsistensi>(); for (int i = 0; i < dataTable.Rows.Count; i++) { Konsistensi k = new Konsistensi(); object[] required = new object[] { DBNull.Value, "" }; k.Field = dataTable.Rows[i][FIELD].ToString(); if (string.IsNullOrWhiteSpace(k.Field)) continue; k.Message = dataTable.Rows[i][MESSAGE].ToString(); var obj = dataTable.Rows[i][ORDER]; k.Order = !required.Contains(dataTable.Rows[i][ORDER]) ? Convert.ToInt32(dataTable.Rows[i][ORDER]) : (int?)null; k.Page = !required.Contains(dataTable.Rows[i][PAGE]) ? Convert.ToInt32(dataTable.Rows[i][PAGE]) : (int?)null; k.Perlakuan = dataTable.Rows[i][PERLAKUAN].ToString(); k.RelFields = dataTable.Rows[i][RELFIELDS].ToString(); k.Rule = dataTable.Rows[i][RULE].ToString(); if (dataTable.Rows[i][LEVEL].ToString().ToUpper() == ("ART")) k.LevelKonsistensi = LevelKonsistensi.ART; else if (dataTable.Rows[i][LEVEL].ToString().ToUpper() == ("RT")) k.LevelKonsistensi = LevelKonsistensi.RT; else if (dataTable.Rows[i][LEVEL].ToString().ToUpper() == ("RTWARNING")) k.LevelKonsistensi = LevelKonsistensi.RTWarning; else if (dataTable.Rows[i][LEVEL].ToString().ToUpper().Contains("ARTWARNING")) k.LevelKonsistensi = LevelKonsistensi.ARTWarning; else k.LevelKonsistensi = LevelKonsistensi.Lain; //k.LevelKonsistensi = dataTable.Rows[i][LEVEL].ToString().Contains("ART") ? LevelKonsistensi.ART : LevelKonsistensi.RT; if (k.IsEmpty()) continue; listMetadata.Add(k); } return listMetadata; }
Value cannot be null. Parameter name: InString: This error indicates that an item failed to migrate because it has corrupt MAPI properties. More specifically, Exchange Web Services (EWS) returned a MAPI property whose value should always be a non-empty string, but was returned as an empty string.
When processing orders you might come across the "Value cannot be null. Parameter name: value" error. This error is shown when part of your basic Billing Account setup is incomplete, and by consequence, processing is not possible until those are solved.
An ArgumentNullException exception is thrown when a method is invoked and at least one of the passed arguments is null but should never be null .
Error message clearly says that source
parameter is null
. Source is the enumerable you are enumerating. In your case it is ListMetadataKor
object. And its definitely null
at the time you are filtering it second time. Make sure you never assign null
to this list. Just check all references to this list in your code and look for assignments.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With