WPF C#中DataTemplate内部的绑定命令

时间:2018-09-18 08:34:06

标签: c# wpf data-binding

我的数据模板中有一个按钮标签。单击按钮后,我想触发命令。如果按钮在数据模板之外,则我的按钮可以工作。我尝试了几种解决方案,例如:

public class Main {
    public static int count = 0;

    public static void main(String[] args) {
        String str = "AAAA";
        System.out.println(delete1(str));;
    }

    private static int delete1(String str) {
        if (str.length() > 1) {
            for (int i = 1; i < str.length(); i++) {
                if (str.charAt(i-1) == str.charAt(i)) {
                    count++;
                    str = str.substring(i, str.length());
                    delete1(str);
                }
            }
        }

        return count;
    }

}

这是我的ViewModel:

<Button x:Name="btnUpdate" Content="Update" VerticalAlignment="Center" HorizontalAlignment="Right" Click="btnUpdate_Click" 
                                    Command="{Binding Path=DataContext.updateProductionLineConfigCommand, 
                                RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}}"/>

这是我的Command类:

public UpdateProductionLineConfigCommand updateProductionLineConfigCommand { get; set; }

    public ProductionLineConfigViewModel()
    {
        ProductionLineConfig = new ProductionLineConfig();
        newProductionLineConfigCommand = new NewProductionLineConfigCommand(this);
        updateProductionLineConfigCommand = new UpdateProductionLineConfigCommand(this);
    }

有人可以帮我这个忙吗?为什么我无法将命令绑定到我的按钮?

1 个答案:

答案 0 :(得分:0)

这是解决我的问题的解决方案。

<Button x:Name="btnUpdate" Content="Update" VerticalAlignment="Center" HorizontalAlignment="Right" 
Click="btnUpdate_Click" Command="{Binding DataContext.updateProductionLineConfigCommand, 
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:production_line_config_home}}}"/>