首页 > 解决方案 > 如何在数据模板中调用按钮?

问题描述

我的工作按钮有问题。我使用 ObservableCollection 创建了显示项目的模式,但我的按钮不起作用。

在这里,我显示带有剂量工作按钮的项目

            <ItemsControl ItemsSource="{Binding Vehicles}">
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <Task:VehcileTask/>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>

这是带有 VehicleTask 的代码显示按钮

            <Button Background="Red" Content="Delete"  Command="{Binding DeleteItem}">
            
        </Button>

这是调用的命令

        public ICommand DeleteItem { get; set; }

标签: c#.netwpfxamlmvvm

解决方案


假设 DeleteItem 命令是您的主 ViewModel 的属性,而不是单个数据项,那么您需要通过相关数据绑定来引用它。

Command="{Binding Path=DataContext.DeleteItem, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}"

您还需要将要删除的项目作为 Button 的 CommandParameter 包含在内

CommandParameter="{Binding}"

并在命令的相应方法中引用该参数值。


推荐阅读