【问题标题】:Silverlight RadComboBox keeping open after selectionSilverlight RadComboBox 选择后保持打开状态
【发布时间】:2012-08-07 06:47:03
【问题描述】:

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

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

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

【问题讨论】:

  • 试试下面的链接link
  • 有趣的链接。我会检查一下并制作必要的东西来适应我的需要。再次感谢
  • 你认为我应该把我的链接作为你问题的答案吗?
  • 为什么不,因为我没有得到原始问题的答案,所以我将像链接中的那个那样做一个特殊的控件来完成我的任务。

标签: silverlight mvvm combobox telerik radcombobox


【解决方案1】:

让我们说,

  IsDropDownOpen = {Binding IsDropDownFromViewModel}

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

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

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

示例场景:

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

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

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

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

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

【讨论】:

  • 谢谢你。我已经在 SelectedItem 中尝试过设置 IsDropDownOpen = true,并触发 NotifyPropertyChanged,但在此事件之后它仍然关闭。再次感谢,我想我必须做一个特殊的控制。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多