Hello.
I'm using XamTreeGrid because of its powerful filter functions.
In my program, I uses two XamTreeGrids on top and bottom side. When I hit some list on top tree grid, the selected items are displayed in bottom tree grid. And you can also do that with context menu for your convenience.
But Program dies in the below 2 situations.
First, Once You choose some items in below tree grid and then click some checkbox item in top tree grid or click context Menu on top tree grid, It die.
Second, After some items are listed on bottom tree grid by selecting some on top tree grid, If you choose any of context menu of bottom tree grid, It also die.
It looks like something happened by hooking event from xamTreeGrid, It's not clear to me.
Please help me.
Test Case is here. https://github.com/jswpro/XamTreeGridSample.git
thanks.
Hi jswpro,
How exactly is the application dying? Is there an exception being thrown? Testing your sample against the latest 15.2 version available, I'm not able to reproduce any crashes or exceptions although maybe I'm just performing your steps incorrectly. I'm selecting items from the top XamTreeGrid by clicking on the checkboxes and then I'm right clicking inside the bottom XamTreeGrid to bring up the ContextMenu. I then select one of the menu items.
What is the exception that you are getting? Can you provide the stack trace for it?
You can reproduce it as below.
1. Select items from the top XamTreeGrid by clicking on the checkboxes
2. Select one or more of records inside the bottom XamTreeGrid.
3. Right click inside the bottom XamTreeGrid to bring up the ContextMenu and click any of the menu items.
or
3. De-Select items back again for No1.
belows are stacktraces
위치: Infragistics.Windows.DataPresenter.RecordManager.RemoveRecordHelper(Int32 index) 위치: Infragistics.Windows.DataPresenter.RecordManager.OnSourceCollectionAddOrRemove(NotifyCollectionChangedEventArgs e) 위치: Infragistics.Windows.DataPresenter.RecordManager.OnSourceCollectionChanged(Object sender, NotifyCollectionChangedEventArgs e) 위치: Infragistics.Windows.DataPresenter.RecordManager.ProcessChangeNotification(Object sender, Object eventArgs) 위치: Infragistics.Windows.DataPresenter.RecordManager.OnChangeNotification(Object sender, Object eventArgs, Boolean isReset, Boolean isCellChangeNotification) 위치: Infragistics.Windows.DataPresenter.RecordManager.System.Windows.IWeakEventListener.ReceiveWeakEvent(Type managerType, Object sender, EventArgs e) 위치: System.Windows.WeakEventManager.ListenerList.DeliverEvent(Listener& listener, Object sender, EventArgs args, Type managerType) 위치: System.Windows.WeakEventManager.ListenerList`1.DeliverEvent(Object sender, EventArgs e, Type managerType) 위치: System.Windows.WeakEventManager.DeliverEvent(Object sender, EventArgs args) 위치: System.Collections.Specialized.CollectionChangedEventManager.OnCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args) 위치: System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e) 위치: System.Collections.ObjectModel.ObservableCollection`1.RemoveItem(Int32 index) 위치: System.Collections.ObjectModel.Collection`1.Remove(T item) 위치: ModuleA.DataAccess.NetsAccessRepo.NetItem_PropertyChanged(Object sender, PropertyChangedEventArgs arg) 파일 E:\Source\GitRepositories\XamTreeGridSample\ModuleA\DataAccess\NetsAccessRepo.cs:줄 63 위치: System.ComponentModel.PropertyChangedEventHandler.Invoke(Object sender, PropertyChangedEventArgs e) 위치: Prism.Mvvm.BindableBase.OnPropertyChanged(String propertyName) 위치: Prism.Mvvm.BindableBase.SetProperty[T](T& storage, T value, String propertyName) 위치: ModuleA.Model.Net.set_IsChecked(Boolean value) 파일 E:\Source\GitRepositories\XamTreeGridSample\ModuleA\Model\Net.cs:줄 23 위치: ModuleA.Model.NetGroup.<>c.<set_IsChecked>b__10_1(Net o) 파일 E:\Source\GitRepositories\XamTreeGridSample\ModuleA\Model\NetGroup.cs:줄 55 위치: System.Collections.Generic.List`1.ForEach(Action`1 action) 위치: ModuleA.Model.NetGroup.set_IsChecked(Nullable`1 value) 파일 E:\Source\GitRepositories\XamTreeGridSample\ModuleA\Model\NetGroup.cs:줄 55
Thank you for your support first.
You can reproduct it with below procedure.
2. Select one or more of record in the bottom XamTreeGrid by clicking left mouse button on the records
3. bring up the ContextMenu in the bottom XamTreeGrid and choose one of contextMenu.
Or,
2. Select one or more of records in the bottom XamTreeGrid by clicking left mouse button on the records
3. UnSelect items from the top XamTreeGrid by clicking on the selected checkboxes.
Below are stack trace for the error.
위치: Infragistics.Windows.DataPresenter.RecordManager.RemoveRecordHelper(Int32 index)
위치: Infragistics.Windows.DataPresenter.RecordManager.OnSourceCollectionAddOrRemove(NotifyCollectionChangedEventArgs e) 위치: Infragistics.Windows.DataPresenter.RecordManager.OnSourceCollectionChanged(Object sender, NotifyCollectionChangedEventArgs e) 위치: Infragistics.Windows.DataPresenter.RecordManager.ProcessChangeNotification(Object sender, Object eventArgs) 위치: Infragistics.Windows.DataPresenter.RecordManager.OnChangeNotification(Object sender, Object eventArgs, Boolean isReset, Boolean isCellChangeNotification) 위치: Infragistics.Windows.DataPresenter.RecordManager.System.Windows.IWeakEventListener.ReceiveWeakEvent(Type managerType, Object sender, EventArgs e) 위치: System.Windows.WeakEventManager.ListenerList.DeliverEvent(Listener& listener, Object sender, EventArgs args, Type managerType) 위치: System.Windows.WeakEventManager.ListenerList`1.DeliverEvent(Object sender, EventArgs e, Type managerType) 위치: System.Windows.WeakEventManager.DeliverEvent(Object sender, EventArgs args) 위치: System.Collections.Specialized.CollectionChangedEventManager.OnCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args) 위치: System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e) 위치: System.Collections.ObjectModel.ObservableCollection`1.RemoveItem(Int32 index) 위치: System.Collections.ObjectModel.Collection`1.Remove(T item) 위치: ModuleA.DataAccess.NetsAccessRepo.NetItem_PropertyChanged(Object sender, PropertyChangedEventArgs arg) 파일 E:\Source\GitRepositories\XamTreeGridSample\ModuleA\DataAccess\NetsAccessRepo.cs:줄 63 위치: System.ComponentModel.PropertyChangedEventHandler.Invoke(Object sender, PropertyChangedEventArgs e) 위치: Prism.Mvvm.BindableBase.OnPropertyChanged(String propertyName) 위치: Prism.Mvvm.BindableBase.SetProperty[T](T& storage, T value, String propertyName) 위치: ModuleA.Model.Net.set_IsChecked(Boolean value) 파일 E:\Source\GitRepositories\XamTreeGridSample\ModuleA\Model\Net.cs:줄 23 위치: ModuleA.Model.NetGroup.<>c.<set_IsChecked>b__10_1(Net o) 파일 E:\Source\GitRepositories\XamTreeGridSample\ModuleA\Model\NetGroup.cs:줄 55 위치: System.Collections.Generic.List`1.ForEach(Action`1 action) 위치: ModuleA.Model.NetGroup.set_IsChecked(Nullable`1 value) 파일 E:\Source\GitRepositories\XamTreeGridSample\ModuleA\Model\NetGroup.cs:줄 55