Hi,
i have a Grid with following settings:
...
this.FieldLayoutSettings.SupportDataErrorInfo = SupportDataErrorInfo.None; this.FieldLayoutSettings.DataErrorDisplayMode = DataErrorDisplayMode.None;
Why the function RefreshDataErrorInfo is called?
This function is very expensive!
40,64% System.Collections.ObjectModel.ObservableCollection<T>.OnCollectionChanged... - 31237* ms - 149 calls 40,64% ReceiveWeakEvent - 31236* ms - 149 calls - Infragistics.Windows.DataPresenter.RecordManager.ReceiveWeakEvent(Type, Object, EventArgs) (from System.Windows.IWeakEventListener) 40,64% OnChangeNotification - 31236* ms - 149 calls - Infragistics.Windows.DataPresenter.RecordManager.OnChangeNotification(Object, Object, Boolean) 40,64% ProcessChangeNotification - 31235* ms - 149 calls - Infragistics.Windows.DataPresenter.RecordManager.ProcessChangeNotification(Object, Object) 40,64% OnSourceCollectionChanged - 31235* ms - 149 calls - Infragistics.Windows.DataPresenter.RecordManager.OnSourceCollectionChanged(Object, NotifyCollectionChangedEventArgs) 40,64% OnSourceCollectionReset - 31235* ms - 149 calls - Infragistics.Windows.DataPresenter.RecordManager.OnSourceCollectionReset() 21,32% RefreshCellValues - 16389* ms - 2098 calls - Infragistics.Windows.DataPresenter.DataRecord.RefreshCellValues(Boolean, Boolean, Boolean) 19,69% RefreshDataErrorInfo - 15138* ms - 2098 calls - Infragistics.Windows.DataPresenter.DataRecord.RefreshDataErrorInfo(Field, Boolean) 19,27% RefreshDataErrorInfo - 14815* ms - 493115 calls - Infragistics.Windows.DataPresenter.DataRecord.RefreshDataErrorInfo(Field, Boolean) 18,80% FromRecordAndField - 14448* ms - 493115 calls - Infragistics.Windows.DataPresenter.CellValuePresenter.FromRecordAndField(DataRecord, Field) 16,98% GetDescendantFromType - 13054* ms - 493115 calls - Infragistics.Windows.Utilities.GetDescendantFromType(DependencyObject, Type, Boolean) 16,93% GetDescendantFromType<T> - 13012* ms - 493115 calls - Infragistics.Windows.Utilities.GetDescendantFromType<T>(DependencyObject, Type, Boolean, DependencyObjectSearchCallback<T>, Type []) 15,07% GetDescendantFromType<T> - 11581* ms - 493115 calls - Infragistics.Windows.Utilities.GetDescendantFromType<T>(DependencyObject, Type, Boolean, DependencyObjectSearchCallback<T>, Type []) 13,24% GetDescendantFromType<T> - 10175* ms - 493115 calls - Infragistics.Windows.Utilities.GetDescendantFromType<T>(DependencyObject, Type, Boolean, DependencyObjectSearchCallback<T>, Type []) 6,48% GetChild - 4984* ms - 5917381 calls - System.Windows.Media.VisualTreeHelper.GetChild(DependencyObject, Int32) 3,34% GetDescendantFromType<T> - 2566 ms - 2958692 calls - Infragistics.Windows.Utilities.GetDescendantFromType<T>(DependencyObject, Type, Boolean, DependencyObjectSearchCallback<T>, Type []) 1,73% IsAssignableFrom - 1333 ms - 2958690 calls - System.Type.IsAssignableFrom(Type) 0,67% GetChildrenCount - 517 ms - 493115 calls - System.Windows.Media.VisualTreeHelper.GetChildrenCount(DependencyObject) 0,87% GetChild - 665 ms - 986230 calls - System.Windows.Media.VisualTreeHelper.GetChild(DependencyObject, Int32) 0,44% GetChildrenCount - 341 ms - 493115 calls - System.Windows.Media.VisualTreeHelper.GetChildrenCount(DependencyObject) 0,29% IsAssignableFrom - 221 ms - 493115 calls - System.Type.IsAssignableFrom(Type) 0,83% GetChild - 642 ms - 986230 calls - System.Windows.Media.VisualTreeHelper.GetChild(DependencyObject, Int32) 0,43% GetChildrenCount - 331 ms - 493115 calls - System.Windows.Media.VisualTreeHelper.GetChildrenCount(DependencyObject) 0,32% IsAssignableFrom - 249 ms - 493115 calls - System.Type.IsAssignableFrom(Type) 1,21% GetRecordContentSite - 932 ms - 493115 calls - Infragistics.Windows.DataPresenter.RecordPresenter.GetRecordContentSite() 0,25% GetCellValuePresenter - 193 ms - 493116 calls - Infragistics.Windows.DataPresenter.VirtualizingDataRecordCellPanel.GetCellValuePresenter(Field) 0,15% get_AssociatedRecordPresenter - 113 ms - 493115 calls - Infragistics.Windows.DataPresenter.Record.get_AssociatedRecordPresenter() 0,02% IsCellAllocated - 19 ms - 493115 calls - Infragistics.Windows.DataPresenter.DataRecord.IsCellAllocated(Field) 0,34% UpdateDataError - 264 ms - 16788 calls - Infragistics.Windows.DataPresenter.CellValuePresenter.UpdateDataError() 0,02% get_IsUnbound - 18 ms - 493115 calls - Infragistics.Windows.DataPresenter.Field.get_IsUnbound() 0,25% RaisePropertyChangedEvent - 193 ms - 4196 calls - Infragistics.Windows.Helpers.PropertyChangeNotifier.RaisePropertyChangedEvent(String) 0,03% MoveNext - 22 ms - 495214 calls - System.Collections.Generic.List<T>.Enumerator.MoveNext() 0,03% UpdateDataError - 20 ms - 2098 calls - Infragistics.Windows.DataPresenter.DataRecordPresenter.UpdateDataError() 0,02% get_Current - 18 ms - 493115 calls - System.Collections.Generic.List<T>.Enumerator.get_Current() 1,42% SyncValueWithCellValue - 1088 ms - 16784 calls - Infragistics.Windows.DataPresenter.CellValuePresenter.SyncValueWithCellValue(DataRecord, Field) 0,09% DataValueChangedHelper - 69 ms - 16784 calls - Infragistics.Windows.DataPresenter.DataRecord.DataValueChangedHelper(Field) 0,03% MoveNext - 20 ms - 495128 calls - System.Collections.Generic.List<T>.Enumerator.MoveNext() 0,02% get_Current - 18 ms - 493030 calls - System.Collections.Generic.List<T>.Enumerator.get_Current() 12,13% VerifySort - 9325 ms - 149 calls - Infragistics.Windows.DataPresenter.RecordManager.VerifySort() 2,45% EndUpdate - 1882 ms - 149 calls - Infragistics.Windows.DataPresenter.RecordManager.EndUpdate(Boolean) 1,75% GetItem - 1346 ms - 2254405 calls - Infragistics.Windows.DataPresenter.UnsortedRecordSparseArray.GetItem(Int32, Boolean) 0,35% MoveNext - 267 ms - 2254554 calls - Infragistics.Windows.Helpers.SparseArray.NonNullEnumerator.MoveNext() (from System.Collections.IEnumerator) 0,32% get_Current - 244 ms - 2254405 calls - Infragistics.Windows.Helpers.SparseArray.NonNullEnumerator.get_Current() (from System.Collections.IEnumerator) 0,29% RaisePropertyChangedEvent - 221 ms - 600 calls - Infragistics.Windows.Helpers.PropertyChangeNotifier.RaisePropertyChangedEvent(String) 0,15% GetObjectForComparison - 112 ms - 2254405 calls - Infragistics.Windows.Internal.DataBindingUtilities.GetObjectForComparison(Object) 0,14% get_AssociatedRecordPresenter - 108 ms - 2256503 calls - Infragistics.Windows.DataPresenter.Record.get_AssociatedRecordPresenter() 0,13% MoveNext - 96 ms - 2254554 calls - System.Collections.Generic.List<T>.Enumerator.MoveNext() 0,12% OnDataChanged - 89 ms - 299 calls - Infragistics.Windows.DataPresenter.RecordManager.OnDataChanged(DataChangeType, DataRecord, Field) 0,11% get_Current - 86 ms - 2254405 calls - System.Collections.Generic.List<T>.Enumerator.get_Current() (from System.Collections.IEnumerator)
best regards
What version and build are you using to test the RefreshDataErrorInfo? I'm not aware of any previous issues with this method but you might check if the issue is resolved with some of the latest service packs. For a further investigation please send a isolated sample so we can look at it.
Thank you,
I have just observed the same thing. I have not explicitly set the SupportDataErrorInfo property (as from documentation it says it defaults to None) but I also see a large percentage of time being spent calling RefreshDataErrorInfo.
thanks
I am using version 10.1