4

Silverlight MVVM。我有一个 RadCombobox,对于每个选择,我在另一个数据网格中添加一个新行。我在我的 ViewModel 类中添加了必要的代码,这部分正在工作。我想要执行的是:

  1. 在控件具有焦点时保持组合框打开以允许用户重复选择(我将 IsDropDownOpen 绑定到一个方法并将 SelectedItem 属性中的设置为 true 但在选择后它仍然关闭)

  2. 取消选择选中的项目以允许重复选择。我添加了事件 SelectionChanged 并在 MainPage.xaml.cs 中添加了代码,但在我的 ViewModel 中寻找解决方案。

4

1 回答 1

1

可以说,

  IsDropDownOpen = {Binding IsDropDownFromViewModel}

此外,假设 getterIsDropDownFromViewModel包含打开下拉菜单的所有条件,并且始终返回正确的下拉状态。

现在,您需要做的就是在PropertyChanged您认为下拉菜单应该打开但已关闭的任何时间/任何时间触发此属性的事件,反之亦然。

不幸的是,我没有得到您的确切情况,但让我们假设是这种情况(您应该使用类似的方法来解决您遇到的任何问题)。

示例场景:

当您选择一个项目时,下拉菜单关闭,它旨在保持打开状态

在上述情况下,当用户选择一个项目时,应调用 selectedItem 的相应绑定属性的设置器,这就是我们编写通知代码的地方

  public SelectedItemType SelectedItemInViewModel {
    get{ 
     return _selectedItemVM; 
   },
   set{
     _selectedItemVM=value;
     NotifyPropertyChanged("IsDropDownFromViewModel");
   }
 }

它的作用是,它将告诉 radComboBox 的IsDropDownOpen属性重新评估它在 RHS 上的绑定表达式并获取它的新值

希望您了解该方法的要点,如果没有发表评论。

于 2012-08-14T09:05:55.450 回答