如何将参数从xaml发送到后面的代码

时间:2013-10-28 09:46:35

标签: c# wpf xaml converter

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

在WPF中,该怎么做?

我发现只能将多个值作为link发送。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

你所追求的是一个CommandParameter。让我们假设您将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

希望这有帮助。