MVVMCross&x2B;Android:ViewModel属性上的数据绑定上下文菜单选项?

MVVMCross&x2B;Android:ViewModel属性上的数据绑定上下文菜单选项?,android,mvvmcross,Android,Mvvmcross,如何将菜单选项属性(例如启用的属性)数据绑定到ViewModel属性 我的菜单是在我的MVX活动继承类中创建的,如下所示: public override void OnCreateContextMenu( IContextMenu menu, View v, IContextMenuContextMenuInfo info ) { switch (v.Id) { case Resource.Id.textView1:

如何将菜单选项属性(例如启用的属性)数据绑定到ViewModel属性

我的菜单是在我的MVX活动继承类中创建的,如下所示:

public override void OnCreateContextMenu( IContextMenu menu, View v, IContextMenuContextMenuInfo info )
{
        switch (v.Id)
        {
            case Resource.Id.textView1:
                menu.Add( 0, 0, 0, "Menu Option1" );
                menu.Add( 0, 1, 0, "Menu Option2" );

                break;
            case Resource.Id.textView2:
                menu.Add( 0, 2, 0, "Menu Option3" );
                menu.Add( 0, 3, 0, "Menu Option4" );

                break;
        ...
        }
        ...
}
IMenuItem menuOption = menu.FindItem( 1 ); // Refers to "Menu Option2" above

if (menuOption != null)
{
    menuOption.SetEnabled(false);
}
我知道我可以按如下方式启用/禁用单个菜单项:

public override void OnCreateContextMenu( IContextMenu menu, View v, IContextMenuContextMenuInfo info )
{
        switch (v.Id)
        {
            case Resource.Id.textView1:
                menu.Add( 0, 0, 0, "Menu Option1" );
                menu.Add( 0, 1, 0, "Menu Option2" );

                break;
            case Resource.Id.textView2:
                menu.Add( 0, 2, 0, "Menu Option3" );
                menu.Add( 0, 3, 0, "Menu Option4" );

                break;
        ...
        }
        ...
}
IMenuItem menuOption = menu.FindItem( 1 ); // Refers to "Menu Option2" above

if (menuOption != null)
{
    menuOption.SetEnabled(false);
}
但是如何使用MVVMCross绑定实现这一点呢?我想我可以用C#(动态地)来做这件事,但我不知道怎么做。谁能给我看看吗

提前感谢。

因为菜单是“按需”创建的,所以我通常通过使用ViewModel当前属性实现SetEnabled类型来处理这个问题

e、 g


更聪明-更多的“绑定”选项可用-例如,我们可以创建一个菜单包装对象来自动连接-但在少数情况下,我使用菜单,然后我发现这种ViewModel方法可以正常工作

如何异步完成?我希望仅在加载所有数据后才允许使用菜单项。我的ViewModel上有一个IsDataLoaded属性,但不知道在该属性更改时如何启用菜单。

谢谢。事实上,我最后就是这么做的。我只是从OnCreateContextMenu()中调用上面代码片段的最后两行。我只是想知道是否有一种方法可以动态地进行绑定,就像在iOS中一样(正如我从另一个SO问题中发现的那样)。但是,您能否提供一个代码片段,用于“更聪明-更多的“绑定”选项可用-例如,我们可以创建一个菜单包装对象来自动连接东西”?