0

在我的 xaml 页面中,我有一个删除按钮,它将删除具有项目 ID 的每一行的项目。我想在单击按钮时发送 id。

在 WPF 中,如何做到这一点?

我发现只有将多个值作为链接发送的方法。

4

2 回答 2

0

我将使用提供的少量信息对此进行尝试。我假设某些项目被选中。当您单击删除按钮时,您希望从列表中删除该项目。在这种情况下,您应该将 item.Tag 设置为 ID 值,或者设置为包含 ID 值的某个对象。然后,当您单击“删除”时,您可以从要删除的列表中获取所选项目,查看该所选项目的标签,并从中获取您需要的 ID。然后,您可以使用刚刚获得的 ID 快速浏览列表,以确定列表中需要删除的其他项目。

希望这可以帮助。如果这没有帮助,请发送更多说明,我会尝试试一试。

于 2013-10-28T14:31:50.897 回答
0

你所追求的是一个命令参数。假设您在页面中将 ViewModel 设置为静态资源,并将 ListBox 绑定到使用 DataTemplate 的项目集合。

要实现这一点,您需要在 ViewModel 中创建一个 ICommand 来处理删除。

public ICommand DeleteItemCommand {
    get { return new DelegateCommand(deleteItemClicked, alwaysCanInvoke); }
}

private deleteItemClicked(object param) {
 // Business logic here to remove item based on param
}

接下来在 XAML DataTemplate 中指定以下内容。

<Button Content="Remove" Command="{Binding Source={StaticResource myViewModel}, Path=DeleteItemCommand}" CommandParameter="{Binding Id}"/>

其中 Id 是您尝试从列表中删除的项目的公开属性。

有关实现 DelegateCommand 的示例,请查看此处:http ://wpftutorial.net/DelegateCommand.html

希望这可以帮助。

于 2013-10-28T23:55:55.217 回答