首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环Xamarin.iOS中的Xamarin.iOS绑定

循环Xamarin.iOS中的Xamarin.iOS绑定
EN

Stack Overflow用户
提问于 2018-03-08 14:04:41
回答 1查看 118关注 0票数 1

我被MvvmCross困住了。我不知道该怎么处理。

情况:

我有一个叫做

MyTempClass看起来是这样的:

代码语言:javascript
复制
public class MyTempClass
{
    public string ImageName { get; set; }
    public bool IsTheCorrectAnswer { get; set; }
    public bool HasBeenClicked { get; set; }
}

我有一个MyTempClass的列表。

从这个列表中,我迭代并创建一个带有按钮的视图。

对于每个按钮,我可以在这样的命令中成功地传递我要遍历的对象:

代码语言:javascript
复制
    for (var i = 0; i < vmExercises.Count;  i++) //This is the list...
        {
            //Create btn & add to the view... 

            var currentExercise = vmExercises[i];
                            set.Bind(btn).WithClearBindingKey(currentExercise.ImageName).To(vm => vm.TestCommand).CommandParameter(currentExercise).Apply();
        }

TestCommand使用的方法如下所示:

代码语言:javascript
复制
    public IMvxCommand TestCommand => new MvxCommand<MyTempClass>(ATestMethod);

    private void ATestMethod(MyTempClass obj)
    {

        obj.HasBeenClicked = true;
        CurrentTempClass = obj;
    }

问题

我还想绑定此循环中按钮的可见性。我试过这样做:

代码语言:javascript
复制
            set.Bind(btn).WithClearBindingKey(currentExercise.ImageName).For("Visible").To(vm => vm.ShouldBeVisible).Apply();

ShouldBeVisible看起来是这样的:

代码语言:javascript
复制
    public bool ShouldBeVisible
    {
        get
        {
            if (CurrentTempClass.IsTheCorrectAnswer && CurrentTempClass.HasBeenClicked)
            {
                return false;
            }

            return true;

        }
    }

问题是:

如果其中一个应该被隐藏,所有其他按钮都会被隐藏。

我做错了什么?还有其他人做过这个吗?

我非常感谢你的帮助!)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-09 01:39:11

对于可见性,您应该使用MvvmCross可见插件:https://www.mvvmcross.com/documentation/plugins/visibility

我还建议:从getter和setter中删除逻辑。如果属性被更新,请调用theVisibility.Set上的theVisibility.Set(),使绑定工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49175027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档