This question is locked. New answers and comments are not allowed.
Hello,
I have a strange problem with the DataGrid in the following situation. The DataSource is an ObservableCollection and each row has a custom UserControl as its DetailsView. After changing some data in the ObservableCollection I call the Rebind() method to visualize the changed data and this works fine, if I do this within the class the GridView is instanciated.
The goal is to change the row data from the DetailsView. I pass an instance of the data grid ( I tried to pass an instance of the Grids parent class, also ) to the RowDetails-UserControl an call the Rebind() method after changing the data. This ends up with this COM-Error:
{System.Exception: Beim Aufruf einer COM-Komponente wurde ein HRESULT E_FAIL-Fehler zurückgegeben.
bei MS.Internal.XcpImports.CheckHResult(UInt32 hr)
bei MS.Internal.XcpImports.Collection_Clear[T](PresentationFrameworkCollection`1 collection)
bei System.Windows.PresentationFrameworkCollection`1.ClearImpl()
bei System.Windows.PresentationFrameworkCollection`1.Clear()
bei Telerik.Windows.Controls.GridView.GridViewBaseVirtualizingPanel.OnItemsChangedInternal(Object sender, ItemsChangedEventArgs args)
bei Telerik.Windows.Controls.GridView.GridViewBaseVirtualizingPanel.OnItemsChangedHandler(Object sender, ItemsChangedEventArgs args)
bei Telerik.Windows.Controls.GridView.GridViewItemContainerGenerator.OnRefresh()
bei Telerik.Windows.Controls.GridView.GridViewItemContainerGenerator.Refresh()
bei Telerik.Windows.Controls.GridView.GridViewDataControl.ItemsSourceChanged(Boolean sourceChanged)
bei Telerik.Windows.Controls.GridView.GridViewDataControl.OnItemsChanged(NotifyCollectionChangedEventArgs e)
bei Telerik.Windows.Controls.GridView.BaseItemsControl.OnItemCollectionChanged(Object sender, NotifyCollectionChangedEventArgs e)
bei System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
bei Telerik.Windows.Data.DataItemCollection.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
bei Telerik.Windows.Data.DataItemCollection.Telerik.Windows.Data.IWeakEventListener<System.Collections.Specialized.NotifyCollectionChangedEventArgs>.ReceiveWeakEvent(Object sender, NotifyCollectionChangedEventArgs e)
bei Telerik.Windows.Data.WeakEvent.WeakListener`1.Handler(Object sender, TArgs args)
bei System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
bei Telerik.Windows.Data.QueryableCollectionView.OnCollectionChanged(NotifyCollectionChangedEventArgs args)
bei Telerik.Windows.Data.QueryableCollectionView.RefreshOverride()
bei Telerik.Windows.Data.QueryableCollectionView.RefreshInternal()
bei Telerik.Windows.Data.QueryableCollectionView.RefreshOrDefer()
bei Telerik.Windows.Data.QueryableCollectionView.ProcessSynchronousCollectionChanged(NotifyCollectionChangedEventArgs args)
bei Telerik.Windows.Data.QueryableCollectionView.ProcessCollectionChanged(NotifyCollectionChangedEventArgs args)
bei Telerik.Windows.Data.QueryableCollectionView.Refresh()
bei Telerik.Windows.Controls.DataControl.Rebind()
bei PV.UI.Classes.Interactions.GET_SUPERVISED_POS_BY_AGENCYORGAMEMBER_ID.RebindData()
bei PV.UI.Controls.PoSSupervisorRowDetail.CalculateDate(Object sender, SelectionChangedEventArgs e)}
Is using the Rebind() method the proper way for this scenario or should I use a completely different way?
Thanks for your help!
Jonas
I have a strange problem with the DataGrid in the following situation. The DataSource is an ObservableCollection and each row has a custom UserControl as its DetailsView. After changing some data in the ObservableCollection I call the Rebind() method to visualize the changed data and this works fine, if I do this within the class the GridView is instanciated.
The goal is to change the row data from the DetailsView. I pass an instance of the data grid ( I tried to pass an instance of the Grids parent class, also ) to the RowDetails-UserControl an call the Rebind() method after changing the data. This ends up with this COM-Error:
{System.Exception: Beim Aufruf einer COM-Komponente wurde ein HRESULT E_FAIL-Fehler zurückgegeben.
bei MS.Internal.XcpImports.CheckHResult(UInt32 hr)
bei MS.Internal.XcpImports.Collection_Clear[T](PresentationFrameworkCollection`1 collection)
bei System.Windows.PresentationFrameworkCollection`1.ClearImpl()
bei System.Windows.PresentationFrameworkCollection`1.Clear()
bei Telerik.Windows.Controls.GridView.GridViewBaseVirtualizingPanel.OnItemsChangedInternal(Object sender, ItemsChangedEventArgs args)
bei Telerik.Windows.Controls.GridView.GridViewBaseVirtualizingPanel.OnItemsChangedHandler(Object sender, ItemsChangedEventArgs args)
bei Telerik.Windows.Controls.GridView.GridViewItemContainerGenerator.OnRefresh()
bei Telerik.Windows.Controls.GridView.GridViewItemContainerGenerator.Refresh()
bei Telerik.Windows.Controls.GridView.GridViewDataControl.ItemsSourceChanged(Boolean sourceChanged)
bei Telerik.Windows.Controls.GridView.GridViewDataControl.OnItemsChanged(NotifyCollectionChangedEventArgs e)
bei Telerik.Windows.Controls.GridView.BaseItemsControl.OnItemCollectionChanged(Object sender, NotifyCollectionChangedEventArgs e)
bei System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
bei Telerik.Windows.Data.DataItemCollection.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
bei Telerik.Windows.Data.DataItemCollection.Telerik.Windows.Data.IWeakEventListener<System.Collections.Specialized.NotifyCollectionChangedEventArgs>.ReceiveWeakEvent(Object sender, NotifyCollectionChangedEventArgs e)
bei Telerik.Windows.Data.WeakEvent.WeakListener`1.Handler(Object sender, TArgs args)
bei System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
bei Telerik.Windows.Data.QueryableCollectionView.OnCollectionChanged(NotifyCollectionChangedEventArgs args)
bei Telerik.Windows.Data.QueryableCollectionView.RefreshOverride()
bei Telerik.Windows.Data.QueryableCollectionView.RefreshInternal()
bei Telerik.Windows.Data.QueryableCollectionView.RefreshOrDefer()
bei Telerik.Windows.Data.QueryableCollectionView.ProcessSynchronousCollectionChanged(NotifyCollectionChangedEventArgs args)
bei Telerik.Windows.Data.QueryableCollectionView.ProcessCollectionChanged(NotifyCollectionChangedEventArgs args)
bei Telerik.Windows.Data.QueryableCollectionView.Refresh()
bei Telerik.Windows.Controls.DataControl.Rebind()
bei PV.UI.Classes.Interactions.GET_SUPERVISED_POS_BY_AGENCYORGAMEMBER_ID.RebindData()
bei PV.UI.Controls.PoSSupervisorRowDetail.CalculateDate(Object sender, SelectionChangedEventArgs e)}
Is using the Rebind() method the proper way for this scenario or should I use a completely different way?
Thanks for your help!
Jonas