Silverlight RadComboBox在选择后保持打开状态

时间:2012-08-09 23:56:53

标签: silverlight mvvm combobox telerik radcombobox

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

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

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

1 个答案:

答案 0 :(得分:1)

让我们说,

  IsDropDownOpen = {Binding IsDropDownFromViewModel}

另外,假设IsDropDownFromViewModel的getter包含了下拉打开的所有条件,并且将始终返回正确的下拉状态。

现在您需要做的就是在您认为下拉列表应该打开但是关闭的情况下触发此属性的PropertyChanged事件,反之亦然。

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

示例场景:

  

当你选择一个项目时,下拉关闭,它打算保持打开状态

在上面的例子中,用户选择一个项目,应该调用selectedItem的相应绑定属性的setter,这就是我们编写通知代码的地方

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

这样做,它将告诉radComboBox的IsDropDownOpen属性重新评估它在RHS上的绑定表达式并获得其新值

希望你得到这种方法的要点,如果不发表评论。