Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Xamarin表单:来自viewmodel的命令绑定_C#_Xamarin.forms - Fatal编程技术网

C# Xamarin表单:来自viewmodel的命令绑定

C# Xamarin表单:来自viewmodel的命令绑定,c#,xamarin.forms,C#,Xamarin.forms,简单地说,我得到了一个以xamarin形式显示其viewmodel的页面,但我无法使其工作 以下是viewmodel中的相关部分: public EntranceMenuViewModel(INavigation navigation) { Navigation = navigation; Title = "Entrées"; btnInventoryCommand = new Command(async () =&g

简单地说,我得到了一个以xamarin形式显示其viewmodel的页面,但我无法使其工作

以下是viewmodel中的相关部分:

public EntranceMenuViewModel(INavigation navigation)
    {
        Navigation = navigation;
        Title = "Entrées";

        btnInventoryCommand = new Command(async () => await btnInventoryCommandExe());
        btnMoveGoodsCommand = new Command(async () => await btnMoveGoodsCommandExe());

    }



    ICommand btnInventoryCommand { get; set; }
    ICommand btnMoveGoodsCommand { get; set; }
    async Task btnInventoryCommandExe()
    {
        await Navigation.PushAsync(new Inv2Page());
    }
    async Task btnMoveGoodsCommandExe()
    {
        await Navigation.PushAsync(new Inv2Page(true));
    }
页面中的相关CS:

    EntranceMenuViewModel viewModel;
    

    public EntranceMenuPage()
    {
        InitializeComponent();

        BindingContext = viewModel = new EntranceMenuViewModel(Navigation);

    }
最后是相关的Xaml

<Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"></ColumnDefinition>
            <ColumnDefinition Width="*"></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="60"></RowDefinition>
            <RowDefinition Height="*"></RowDefinition>
        </Grid.RowDefinitions>
        <Button Grid.Column="0" Text="{Binding test}" Command="{Binding btnInventoryCommand}"></Button>
        <Button Grid.Column="1" Text="Move Goods" Command="{Binding btnMoveGoodsCommand}"></Button>
    </Grid>

它确实绑定,因为文本绑定正在工作。我仔细检查了名字,没有发现任何问题。我觉得我错过了一些基本的东西,但在看了两遍我的教程视频后,我不明白。我试着把断路器放在函数中,它似乎没有进入它们


感谢您的帮助

公开这些命令。默认情况下,它们是私有的,xaml实际上无法“看到”它们以执行它们

public ICommand btnInventoryCommand{get;set;}
公共ICommand btnMoveGoodsCommand{get;set;}