Jus*_*ony 5 .net c# wpf binding .net-4.0
我有一个像这样过滤的列表框:
var view = CollectionViewSource.GetDefaultView(FilterSource);
view.Filter = FilterCode;
Run Code Online (Sandbox Code Playgroud)
我SelectedItem遇到了一个问题,当过滤器与viewmodel代码一起使用时会丢失,如下所示:
VM
{
public ObservableCollection<Model> Items{get;set;}
public Model SelectedItem
{
get{return _selectedItem;}
set{_selectedItem = value; NotifyPropertyChanged();}
}
}
Run Code Online (Sandbox Code Playgroud)
应用过滤器时,将SelectedItem设置为null.但是,除非用户实际点击它,否则我想保留所选项目.如果删除过滤器,则仍应选择所选项目.模型确实有一个IsSelected属性,我一直在试图想办法查询IsSelected属性.然而,视图的绑定不会像我期望的那样工作......或者至少我认为它不能
如果发生这种情况,我完成修复的唯一方法如下SelectionChanged:
if (e.AddedItems.Count == 0 && e.RemovedItems.Count >= 0)
SpecialtyListBox.SelectedItem = e.RemovedItems[0];
Run Code Online (Sandbox Code Playgroud)
但是,这看起来确实很老套,并且强制一旦选择了第一个项目就必须始终选择一个项目。在这种情况下,这可能可行,但我仍然想看看是否有人有更好的解决方案?
| 归档时间: |
|
| 查看次数: |
1446 次 |
| 最近记录: |