【问题标题】:Xamarin forms: Command binding from viewmodelXamarin 表单:来自视图模型的命令绑定
【发布时间】:2020-10-28 20:18:12
【问题描述】:

简单地说,我得到了一个带有 xamarin 形式的视图模型的页面,但我无法让它工作。

这是视图模型中的相关部分:

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>

它确实绑定了,因为文本绑定正在工作。我仔细检查了名称,我没有发现任何问题。我觉得我错过了一些基本的东西,但是在浏览了我的教程视频两次之后,我无法理解。我尝试在函数中放置断路器,它似乎没有进入它们。

感谢您的帮助

【问题讨论】:

    标签: c# xamarin.forms


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-04-19
      • 1970-01-01
      • 2018-04-09
      • 1970-01-01
      • 2011-07-29
      • 2012-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多