在ListView中处理Multiselect(WPF + MVVM)

时间:2017-11-08 11:54:18

标签: c# wpf listview mvvm

我实现了以下方法来处理MVVM(Binding)模式中的WPF ListView上的多选。

不幸的是我注意到,对于少量选择(< 10项),它可以工作,但之后它会以某种方式破坏!并非所有IsSelected项都会更新!!我猜这可能是解析器的一些溢出。

任何帮助都将不胜感激。

1)在ListViewItem的数据类型中,我放置了一个Selected / IsSelected属性。

public class LVItem
{
    // ... properties
    public bool Selected { get; set; }
}

2)在XAML中,我将ListViewItem IsSelected属性绑定到此LVItem属性

<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
       <Setter Property="IsSelected" Value="{Binding Selected, Mode=TwoWay}" />
   ...
</ListView.ItemContainerStyle>

我将ListView的ItemsSource绑定到LVItems的ObservableCollection。

3)执行动作/命令时 - 我迭代项目,检查item.Selected == true,如果是,则执行动作。

再次,在调试器上运行清楚地显示我是否选择了太多(ctrl + a在长列表中)只有一些items.Selected将等于true。其他人不是......

0 个答案:

没有答案