MvvmCross Android对话框绑定编程



我想使用Android。对话框(Cross.UI)在我的MvvmCross项目。我的第一个方法是使用AutoViews。因为这个功能还很年轻,所以另一种选择是实现触屏对话框和Droid平台。

现在我只是为Droid这样做,我需要通过编程将ViewModel的属性绑定到对话框的元素。

我的View和ViewModel代码如下:

<<h2>视图/h2>
    public class DialogConfigurationView : MvxBindingDialogActivityView<DialogConfigurationViewModel>
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            DroidResources.Initialise(typeof(Resource.Layout));
            Root = new RootElement()
                {
                    new Section("Private Configuration")
                        {
                            new EntryElement("Name:"),
                            new EntryElement("Description:"),
                            new BooleanElement("Active?")
                        }
                };
        }
    }

ViewModel

    public class DialogConfigurationViewModel : MvxViewModel
    {
        public ConfigurationSet Configuration
        {
            get { return _configuration; }
            set
            {
                if (_configuration != value)
                {
                    _configuration = value;
                    RaisePropertyChanged(() => Configuration);
                }
            }
        }
        private ConfigurationSet _configuration;
    }

我的目标是有一个双向绑定的EntryElement("Name:")与属性ViewModel.Configuration.Name

有谁能帮我一下吗?这能做到吗?

我不知道是否有单机器人。对话框mvvmcross样本浮动其中不使用自动视图!

然而

…绑定的基本语法应该与MonoTouch相同。对话-例如:

                            new Section("Contact Info")
                                {
                                    new StringElement("ID", ViewModel.Customer.ID ?? string.Empty),
                                    new EntryElement("Name", "Name").Bind(this, "{'Value':{'Path':'Customer.Name'}}"),
                                    new EntryElement("Website", "Website").Bind(this, "{'Value':{'Path':'Customer.Website'}}"),
                                    new EntryElement("Primary Phone", "Phone").Bind(this, "{'Value':{'Path':'Customer.PrimaryPhone'}}"),
                                },
                            new Section("Primary Address")
                                {
                                    new EntryElement("Address").Bind(this, "{'Value':{'Path':'Customer.PrimaryAddress.Street1'}}"),
                                    new EntryElement("Address2").Bind(this, "{'Value':{'Path':'Customer.PrimaryAddress.Street2'}}"),
                                    new EntryElement("City").Bind(this, "{'Value':{'Path':'Customer.PrimaryAddress.City'}}"),
                                    new EntryElement("State").Bind(this, "{'Value':{'Path':'Customer.PrimaryAddress.State'}}"),
                                    new EntryElement("Zip").Bind(this, "{'Value':{'Path':'Customer.PrimaryAddress.Zip'}}"),
                                },
从https://github.com/slodge/MvvmCross/blob/vnext/Sample%20-%20CustomerManagement/CustomerManagement/CustomerManagement.Touch/Views/BaseCustomerEditView.cs


请注意,在MonoTouch和MonoDroid的MvvmCross绑定中,文本编辑框之类的默认绑定通常是默认的TwoWay


如果你得到一个样本运行,然后请随意发布到一个要点或一个repo -或博客关于它-看起来我们可以做一些样本的工作!

相关内容

  • 没有找到相关文章

最新更新