I have updated to the latest version of the grid. It no longer allows me to set the grid's selecteditem property to null. It formerly allowed this, now it throws the following exception. I am not sure what to do to work around this, any help would be appreciated.
I am databinding a dependency property that gets set to null, this dependency is databound to the grid's selected item. The stack trace below reflects that operation, the event being raised, going through databinding and throwing inside the Xceed grid.
-Chris-
Error when upgrading to 3.1 from 3.0 - setting grid's selecteditem to null throws exception.
ArgumentNullException [mscorlib] : Value cannot be null.
Parameter name: key
at System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)
at System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
at Xceed.Wpf.DataGrid.SelectionChanger.SelectJustThisItem(Object item, Boolean assumeInItemsCollection)
at Xceed.Wpf.DataGrid.SelectionManager.SelectJustThisItem(DataGridContext dataGridContext, Object item, Boolean assumeInItemsCollection)
at Xceed.Wpf.DataGrid.DataGridControl.OnSelectedItemChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, OperationType operationType)
at System.Windows.DependencyObject.InvalidateProperty(DependencyProperty dp)
at System.Windows.Data.BindingExpression.Invalidate(Boolean isASubPropertyChange)
at System.Windows.Data.BindingExpression.TransferValue(Object newValue, Boolean isASubPropertyChange)
at System.Windows.Data.BindingExpression.ScheduleTransfer(Boolean isASubPropertyChange)
at MS.Internal.Data.ClrBindingWorker.NewValueAvailable(Boolean dependencySourcesChanged, Boolean initialValue, Boolean isASubPropertyChange)
at MS.Internal.Data.PropertyPathWorker.UpdateSourceValueState(Int32 k, ICollectionView collectionView, Object newValue, Boolean isASubPropertyChange)
at MS.Internal.Data.ClrBindingWorker.OnSourcePropertyChanged(Object o, String propName)
at MS.Internal.Data.PropertyPathWorker.System.Windows.IWeakEventListener.ReceiveWeakEvent(Type managerType, Object sender, EventArgs e)
at System.Windows.WeakEventManager.DeliverEventToList(Object sender, EventArgs args, ListenerList list)
at System.ComponentModel.PropertyChangedEventManager.OnPropertyChanged(Object sender, PropertyChangedEventArgs args)
at Polygon.Utilities.Patterns.SynchronizedPropertyChangedEventHandler.Raise(Object sender, Func`1 createArgs) in c:\tfs\EDS\main\src1\Shared\Utilities\Patterns\SynchronizedEventHandler.cs:line 501
at Polygon.Utilities.Patterns.SynchronizedPropertyChangedEventHandler.Raise(Object sender, String propertyName) in c:\tfs\EDS\main\src1\Shared\Utilities\Patterns\SynchronizedEventHandler.cs:line 507
at Polygon.Client.Core.Controls.ChooserViewModel.OnPropertyChanged(String name) in c:\tfs\EDS\main\src1\Shared\ClientCore\Controls\ChooserViewModel.cs:line 403
at Polygon.Client.Core.Controls.ChooserViewModel.set_GridSelectedItem(Object value) in c:\tfs\EDS\main\src1\Shared\ClientCore\Controls\ChooserViewModel.cs:line 376
at Polygon.Client.Core.Controls.ChooserControl.<TryCreateViewModel>b__7(Object , EventArgs ) in c:\tfs\EDS\main\src1\Shared\ClientCore\Controls\ChooserControl.xaml.cs:line 427
at System.EventHandler.Invoke(Object sender, EventArgs e)
at System.Windows.FrameworkElement.RaiseClrEvent(EventPrivateKey key, EventArgs args)
at System.Windows.Controls.Primitives.Popup.OnClosed(EventArgs e)
at System.Windows.Controls.Primitives.Popup.DestroyWindow()
at System.Windows.Controls.Primitives.Popup.<HideWindow>b__1(Object sender, EventArgs args)
at System.Windows.Threading.DispatcherTimer.FireTick(Object unused)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)