2012-08-09 66 views
4

Silverlight MVVM。我有一个RadCombobox,并为每个选择我在另一个数据网格中添加一个新行。我在ViewModel类中添加必需的代码,这部分工作正常。我想执行的是:Silverlight RadComboBox在选择后保持打开状态

  1. 保持下拉框中打开,而控制具有焦点,以允许用户重复选择(我绑定IsDropDownOpen的方法和在SelectedItem属性为true,但仍然设置它会在选择后关闭)

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

+0

只是尝试下面的链接[链接](http://jobijoy.blogspot.com/2009/02/simple-multiselect-combobox-using.html) – vinod8812 2012-08-14 04:11:25

+1

有趣的链接。我会检查出来,使必需品适应我的需求。再次感谢 – 2012-08-14 17:13:18

+0

你认为我应该把我的链接作为你的问题的答案吗? – vinod8812 2012-08-15 12:22:22

回答

1

比方说,

IsDropDownOpen = {Binding IsDropDownFromViewModel} 

而且,假设的IsDropDownFromViewModel吸气剂涵盖所有的条件下拉是开放的,而且将永远返回正确的下拉状态。

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

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

示例方案:

下拉关闭时选择一个项目,其旨在保持打开

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

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

这是干什么的,它会tel l radComboBox的IsDropDownOpen属性重新评估其在RHS上的绑定表达式并获得其新值

希望您能够获得该方法的要点,如果不发表评论。

+0

谢谢Jugal。我已经在SelectedItem中试过了,我设置了IsDropDownOpen = true,并且触发了NotifyPropertyChanged,但是在这个事件之后仍然关闭。再次感谢,我想我必须做一个特殊的控制。 – 2012-08-14 17:22:26

相关问题