【发布时间】:2011-03-29 10:54:07
【问题描述】:
在我的视图模型中,我有一个包含项目的列表 (ObservableCollection)。在视图中,此列表显示在 ItemsControl 中。在每一行中,都有一个“删除”按钮。我希望按钮后面的命令从列表中删除该项目。
<ItemsControl ItemsSource="{Binding myList}">
<ItemsControl.ItemTemplate>
...
<Button Command="{StaticResource myDeleteCommand}" CommandParameter="???">
Remove item
</Button>
...
</ItemsControl.ItemTemplate>
</ItemsControl>
我应该传递什么作为命令参数?
- 项目本身 (
Binding .)?然后我在命令中没有对列表的引用,所以我需要更改我的模型,使每个列表项都包含对列表的反向引用。 - 列表?那么我没有对该项目的引用。
- 两者都有?然后我需要编写一个 MultiConverter 将列表和项目转换为一些自定义对象。对于这样一个简单的任务来说,开销似乎很大。
有什么想法吗?这对我来说似乎是一个相当普遍的情况,所以我想一定有一些行之有效的最佳实践解决方案......
【问题讨论】:
标签: wpf data-binding mvvm command viewmodel