是selecteditems不是selectedItem
时间: 2024-10-11 19:08:20 浏览: 25
silverlight RadGridView SelectedItems 数据绑定
4星 · 用户满意度95%
对不起,我的之前的回答有误。在WPF MVVM中,如果你想要获取`DataGrid`的选定项集合(SelectedItems),而不是单个的`SelectedItem`,应该这样操作:
1. **数据绑定**:
在XAML中,绑定`SelectedItems`属性,而不是`SelectedItem`。代码类似这样:
```xml
<DataGrid ItemsSource="{Binding Items}" SelectedItems="{Binding SelectedItems, UpdateSourceTrigger=PropertyChanged}">
<!-- ...其他DataGrid配置 -->
</DataGrid>
```
`UpdateSourceTrigger=PropertyChanged`确保了每当`SelectedItems`在UI中更改时,对应的ViewModel属性也同步更新。
2. **ViewModel设计**:
在ViewModel中,创建一个`ICollectionView`类型的属性来存储选定项,因为`SelectedItems`通常返回的是`ICollectionView`:
```csharp
public ObservableCollection<object> SelectedItems { get; private set; }
```
3. **处理选定项**:
当`SelectedItems`发生改变时,你需要相应地更新你的数据模型或者通知视图层。
4. **访问选定项**:
要获取全部选定的项,直接在ViewModel中使用`SelectedItems`属性即可,它是一个`ICollectionView`,你可以遍历其内容获取所有选定项。
阅读全文