3 回答
TA贡献1806条经验 获得超8个赞
将x:Name="listView"属性添加到您的ListView,然后在模板中
<Button Grid.Column="1"
Command="{Binding ElementName=listView, Path=DataContext.RemoveItemCommand}"
CommandParameter="{Binding}" >
但是,当我遇到这样的问题时,我通常只是在后面使用代码。这样做的原因是,我可以在Visual Studio中为C#代码使用调试器,但是调试这些复杂的绑定要困难得多。这是一个C#版本,代码是IMO清洁器,更易于调试:
void removeItem_Click( object sender, RoutedEventArgs e )
{
object i = ((FrameworkElement)sender).DataContext;
( this.DataContext as MyViewModel )?.RemoveItem( i );
}
也许那只是我的个人喜好。
TA贡献1784条经验 获得超2个赞
最好在列表视图中具有上下文菜单项(或页面上某处的删除按钮)以删除当前选定的项。然后,您可以从列表视图中获得选择。
或者,您可以将上下文菜单附加到PrepareContainterForItemOverride中的列表视图项(并在另一个Override方法中将其分离)
那将是一种更加标准的交互方式。
如果必须在列表视图项中包含按钮,那么获取列表项的最简单方法可能是使用可视树帮助器从按钮转到列表视图项,然后从列表中获取实际项查看项目。
- 3 回答
- 0 关注
- 371 浏览
添加回答
举报