XamComboEditor和取消ViewModel中的值更改

时间:2018-08-23 07:54:18

标签: c# wpf mvvm infragistics

我将XamComboEditor(Infragistics XAM版本18.1)绑定到了我的视图模型:

<Editors:XamComboEditor 
         ItemsSource="{hw:Binding AvailableImports}"
         SelectedItem="{hw:Binding Import}" 
         DisplayMemberPath="Name">

如果要应用特定条件,我想取消SelectedItem的值更改(绑定到ViewModel.Import):

public Import Import
{
   get => _import;
   set
   {
      if (value != _import)
      {
         if (NotEligible(value))
         {
            ShowNotEligibleMessage();
            Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)(() => SendPropertyChanged(nameof(Import))));
            return;
         }
         _import = value;
         SendPropertyChanged(nameof(Import));
      }
   }
}

问题:组合框仍会更改选择,并且不再与视图模型状态保持一致。即使使用此方法后,调度员处理的“属性已更改”通知也无法修复此行为(使用普通的Combobox实例而不是XamComboEditor时会发生此情况。)

我发现了this article,但是所描述的解决方案涉及使用我试图避免使用的代码。

还有其他解决方法吗?

0 个答案:

没有答案