That didn't fix the issue. I think the actual issue is that SecondChoice is getting set to an empty string from somewhere inside the Actipro Library
Here's the call stack I see
WpfApp3.exe!WpfApp3.Data.SecondChoice.set(string value = "") Line 72 C#
[External Code]
WpfApp3.exe!WpfApp3.CustomPropertyModel.OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs e = {System.ComponentModel.PropertyChangedEventArgs}) Line 164 C#
[External Code]
WpfApp3.exe!WpfApp3.CustomPropertyModel.OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs e = {System.ComponentModel.PropertyChangedEventArgs}) Line 172 C#
[External Code]
WpfApp3.exe!WpfApp3.Data.MyPropertyChanged(string propertyName = "SecondChoice") Line 30 C#
WpfApp3.exe!WpfApp3.Data.SecondChoice.set(string value = "B 1") Line 75 C#
WpfApp3.exe!WpfApp3.Data.FirstChoice.set(string value = "With B") Line 52 C#
[External Code]
You can see the SecondChoice.set with the value 'B 1' at the bottom. The second ( at the top ) is with an empty string. That second set is coming from inside the Actipro library. Here's a more detailed call stack with External Code enabled
WpfApp3.exe!WpfApp3.Data.SecondChoice.set(string value = "") Line 72 C#
[Native to Managed Transition]
[Managed to Native Transition]
System.dll!System.SecurityUtils.MethodInfoInvoke(System.Reflection.MethodInfo method, object target, object[] args) Unknown
System.dll!System.ComponentModel.ReflectPropertyDescriptor.SetValue(object component = {WpfApp3.Data}, object value = "") Unknown
ActiproSoftware.Grids.Wpf.dll!ActiproSoftware.Windows.Controls.Grids.PropertyData.PropertyDescriptorPropertyModel.ValueCore.set(object value) Unknown
ActiproSoftware.Grids.Wpf.dll!ActiproSoftware.Windows.Controls.Grids.PropertyData.CachedPropertyModelBase.Value.set(object value) Unknown
ActiproSoftware.Grids.Wpf.dll!ActiproSoftware.Windows.Controls.Grids.PropertyData.CachedPropertyModelBase.ValueAsStringCore.set(string value) Unknown
ActiproSoftware.Grids.Wpf.dll!ActiproSoftware.Windows.Controls.Grids.PropertyData.CachedPropertyModelBase.ValueAsString.set(string value) Unknown
[Native to Managed Transition]
[Managed to Native Transition]
PresentationFramework.dll!MS.Internal.Data.PropertyPathWorker.SetValue(object item, object value) Unknown
PresentationFramework.dll!MS.Internal.Data.ClrBindingWorker.UpdateValue(object value) Unknown
PresentationFramework.dll!System.Windows.Data.BindingExpression.UpdateSource(object value = null) Unknown
PresentationFramework.dll!System.Windows.Data.BindingExpressionBase.UpdateValue() Unknown
PresentationFramework.dll!System.Windows.Data.BindingExpression.UpdateOverride() Unknown
PresentationFramework.dll!System.Windows.Data.BindingExpressionBase.Update() Unknown
PresentationFramework.dll!System.Windows.Data.BindingExpressionBase.ProcessDirty() Unknown
PresentationFramework.dll!System.Windows.Data.BindingExpressionBase.Dirty() Unknown
PresentationFramework.dll!System.Windows.Data.BindingExpressionBase.SetValue(System.Windows.DependencyObject d, System.Windows.DependencyProperty dp, object value) Unknown
WindowsBase.dll!System.Windows.DependencyObject.SetValueCommon(System.Windows.DependencyProperty dp = {System.Windows.DependencyProperty}, object value = null, System.Windows.PropertyMetadata metadata = {System.Windows.FrameworkPropertyMetadata}, bool coerceWithDeferredReference = false, bool coerceWithCurrentValue = true, System.Windows.OperationType operationType = Unknown, bool isInternal) Unknown
WindowsBase.dll!System.Windows.DependencyObject.SetCurrentValueInternal(System.Windows.DependencyProperty dp, object value) Unknown
PresentationFramework.dll!System.Windows.Controls.Primitives.Selector.UpdatePublicSelectionProperties() Unknown
PresentationFramework.dll!System.Windows.Controls.Primitives.Selector.SelectionChanger.End() Unknown
PresentationFramework.dll!System.Windows.Controls.Primitives.Selector.OnItemsChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs e) Unknown
PresentationFramework.dll!System.Windows.Controls.ItemsControl.OnItemCollectionChanged2(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) Unknown
PresentationFramework.dll!System.Windows.Data.CollectionView.OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs args = {System.Collections.Specialized.NotifyCollectionChangedEventArgs}) Unknown
PresentationFramework.dll!System.Windows.Controls.ItemCollection.OnViewCollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) Unknown
WindowsBase.dll!System.Windows.WeakEventManager.ListenerList<System.Collections.Specialized.NotifyCollectionChangedEventArgs>.DeliverEvent(object sender = {System.Windows.Data.ListCollectionView}, System.EventArgs e = {System.Collections.Specialized.NotifyCollectionChangedEventArgs}, System.Type managerType = {Name = "CollectionChangedEventManager" FullName = "System.Collections.Specialized.CollectionChangedEventManager"}) Unknown
WindowsBase.dll!System.Windows.WeakEventManager.DeliverEvent(object sender, System.EventArgs args) Unknown
WindowsBase.dll!System.Collections.Specialized.CollectionChangedEventManager.OnCollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs args) Unknown
PresentationFramework.dll!System.Windows.Data.CollectionView.OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs args = {System.Collections.Specialized.NotifyCollectionChangedEventArgs}) Unknown
PresentationFramework.dll!System.Windows.Data.ListCollectionView.RefreshOverride() Unknown
PresentationFramework.dll!System.Windows.Data.CollectionView.RefreshInternal() Unknown
PresentationFramework.dll!System.Windows.Data.CollectionView.Refresh() Unknown
PresentationFramework.dll!System.Windows.Data.CollectionView.EndDefer() Unknown
PresentationFramework.dll!System.Windows.Data.CollectionView.DeferHelper.Dispose() Unknown
PresentationFramework.dll!System.Windows.Controls.ItemCollection.SetCollectionView(System.Windows.Data.CollectionView view) Unknown
PresentationFramework.dll!System.Windows.Controls.ItemCollection.SetItemsSource(System.Collections.IEnumerable value, System.Func<object, object> GetSourceItem) Unknown
PresentationFramework.dll!System.Windows.Controls.ItemsControl.OnItemsSourceChanged(System.Windows.DependencyObject d, System.Windows.DependencyPropertyChangedEventArgs e) Unknown
WindowsBase.dll!System.Windows.DependencyObject.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs e) Unknown
PresentationFramework.dll!System.Windows.FrameworkElement.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs e) Unknown
WindowsBase.dll!System.Windows.DependencyObject.NotifyPropertyChange(System.Windows.DependencyPropertyChangedEventArgs args) Unknown
WindowsBase.dll!System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.EntryIndex entryIndex, System.Windows.DependencyProperty dp = {System.Windows.DependencyProperty}, System.Windows.PropertyMetadata metadata, System.Windows.EffectiveValueEntry oldEntry, ref System.Windows.EffectiveValueEntry newEntry = {System.Windows.EffectiveValueEntry}, bool coerceWithDeferredReference, bool coerceWithCurrentValue, System.Windows.OperationType operationType) Unknown
WindowsBase.dll!System.Windows.DependencyObject.InvalidateProperty(System.Windows.DependencyProperty dp, bool preserveCurrentValue) Unknown
PresentationFramework.dll!System.Windows.Data.BindingExpressionBase.Invalidate(bool isASubPropertyChange) Unknown
PresentationFramework.dll!System.Windows.Data.BindingExpression.TransferValue(object newValue, bool isASubPropertyChange) Unknown
PresentationFramework.dll!System.Windows.Data.BindingExpression.ScheduleTransfer(bool isASubPropertyChange) Unknown
PresentationFramework.dll!MS.Internal.Data.ClrBindingWorker.NewValueAvailable(bool dependencySourcesChanged, bool initialValue, bool isASubPropertyChange) Unknown
PresentationFramework.dll!MS.Internal.Data.PropertyPathWorker.UpdateSourceValueState(int k, System.ComponentModel.ICollectionView collectionView, object newValue, bool isASubPropertyChange) Unknown
PresentationFramework.dll!MS.Internal.Data.ClrBindingWorker.OnSourcePropertyChanged(object o, string propName) Unknown
PresentationFramework.dll!MS.Internal.Data.PropertyPathWorker.OnPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) Unknown
WindowsBase.dll!System.Windows.WeakEventManager.ListenerList<System.ComponentModel.PropertyChangedEventArgs>.DeliverEvent(object sender = {WpfApp3.CustomPropertyModel}, System.EventArgs e = {System.ComponentModel.PropertyChangedEventArgs}, System.Type managerType = {Name = "PropertyChangedEventManager" FullName = "System.ComponentModel.PropertyChangedEventManager"}) Unknown
WindowsBase.dll!System.ComponentModel.PropertyChangedEventManager.OnPropertyChanged(object sender = {WpfApp3.CustomPropertyModel}, System.ComponentModel.PropertyChangedEventArgs args) Unknown
ActiproSoftware.Shared.Wpf.dll!ActiproSoftware.Windows.ObservableObjectBase.OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs e) Unknown
ActiproSoftware.Grids.Wpf.dll!ActiproSoftware.Windows.Controls.Grids.PropertyData.PropertyModelBase.OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs e) Unknown
ActiproSoftware.Grids.Wpf.dll!ActiproSoftware.Windows.Controls.Grids.PropertyData.CachedPropertyModelBase.OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs e) Unknown
WpfApp3.exe!WpfApp3.CustomPropertyModel.OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs e = {System.ComponentModel.PropertyChangedEventArgs}) Line 164 C#
ActiproSoftware.Shared.Wpf.dll!ActiproSoftware.Windows.ObservableObjectBase.NotifyPropertyChanged(string propertyName) Unknown
WpfApp3.exe!WpfApp3.CustomPropertyModel.OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs e = {System.ComponentModel.PropertyChangedEventArgs}) Line 172 C#
ActiproSoftware.Shared.Wpf.dll!ActiproSoftware.Windows.ObservableObjectBase.NotifyPropertyChanged(string propertyName) Unknown
ActiproSoftware.Grids.Wpf.dll!ActiproSoftware.Windows.Controls.Grids.PropertyData.PropertyModelBase.#QOj() Unknown
ActiproSoftware.Grids.Wpf.dll!ActiproSoftware.Windows.Controls.Grids.PropertyData.PropertyModelBase.Refresh(ActiproSoftware.Windows.Controls.Grids.PropertyData.PropertyRefreshReason reason) Unknown
ActiproSoftware.Grids.Wpf.dll!ActiproSoftware.Windows.Controls.Grids.PropertyData.PropertyDescriptorPropertyModel.#o4k() Unknown
ActiproSoftware.Grids.Wpf.dll!ActiproSoftware.Windows.Controls.Grids.PropertyData.PropertyDescriptorPropertyModel.#Cdb.OnPropertyValueChanged(object #xhb, System.EventArgs #yhb) Unknown
System.dll!System.ComponentModel.PropertyDescriptor.OnValueChanged(object component, System.EventArgs e) Unknown
System.dll!System.ComponentModel.ReflectPropertyDescriptor.OnValueChanged(object component, System.EventArgs e) Unknown
System.dll!System.ComponentModel.ReflectPropertyDescriptor.OnINotifyPropertyChanged(object component, System.ComponentModel.PropertyChangedEventArgs e) Unknown
ActiproSoftware.Shared.Wpf.dll!ActiproSoftware.Windows.ObservableObjectBase.OnPropertyChanged(System.ComponentModel.PropertyChangedEventArgs e) Unknown
ActiproSoftware.Shared.Wpf.dll!ActiproSoftware.Windows.ObservableObjectBase.NotifyPropertyChanged(string propertyName) Unknown
> WpfApp3.exe!WpfApp3.Data.MyPropertyChanged(string propertyName = "SecondChoice") Line 30 C#
WpfApp3.exe!WpfApp3.Data.SecondChoice.set(string value = "B 1") Line 75 C#
WpfApp3.exe!WpfApp3.Data.FirstChoice.set(string value = "With B") Line 52 C#