示例#1
0
        protected override void OnStart()
        {
            base.OnStart();

            // Create a fragment for every setting that will be shown in this page
            var settingHighestPriorityFragment  = new SettingsFragment(LocalizationResource.SettingHighestPriorityName, LocalizationResource.SettingHighestPriorityDescription, SettingType.Toggleable);
            var settingRecalculateTasksFragment = new SettingsFragment(LocalizationResource.SettingRecalculateTasksName, LocalizationResource.SettingRecalculateTasksDescription, SettingType.Toggleable);
            var settingChangeLanguageFragment   = new SettingsFragment(LocalizationResource.SettingChangeLanguageName, LocalizationResource.SettingChangeLanguageDescription, SettingType.MultipleValues);

            // Show them in the view
            SupportFragmentManager.BeginTransaction()
            .Replace(Resource.Id.settingHighestPriority, settingHighestPriorityFragment)
            .Replace(Resource.Id.settingRecalculateTasks, settingRecalculateTasksFragment)
            .Replace(Resource.Id.settingChangeLanguage, settingChangeLanguageFragment)
            .AddToBackStack(null)
            .Commit();
            SupportFragmentManager.ExecutePendingTransactions();

            // Setup bindings for every fragment
            SetupBindingForSettingEntry(settingHighestPriorityFragment, "Checked HighestPrioritySetAsFirst");
            SetupBindingForSettingEntry(settingRecalculateTasksFragment, "Checked RecalculateTasksAfterBreak");
            SetupBindingForSettingEntry(settingChangeLanguageFragment, "ItemsSource LanguageItems; SelectedItem LanguageValue");

            // For dropdown, make manual binding for selected item because automatic one doesn't work
            var initialValuePosition = (BindingContext.DataContext as SettingsPageViewModel).LanguageItems.IndexOf((BindingContext.DataContext as SettingsPageViewModel).LanguageValue);

            (settingChangeLanguageFragment.SettableView as MvxSpinner).ItemSelected += MvxSpinner_ItemSelected;
            (settingChangeLanguageFragment.SettableView as MvxSpinner).SetSelection(initialValuePosition);
        }
示例#2
0
        /// <summary>
        /// A helper that setups Mvx binding for specified setting fragment
        /// </summary>
        /// <param name="setting">The setting fragment to bind</param>
        /// <param name="bindingString">The Mvx-Bind string</param>
        private void SetupBindingForSettingEntry(SettingsFragment setting, string bindingString)
        {
            var binder = Mvx.IoCProvider.Resolve <IMvxBinder>();

            var bindingRecalculateTasks = binder.Bind(BindingContext.DataContext, setting.SettableView, bindingString).First();

            BindingContext.RegisterBinding(setting.SettableView, bindingRecalculateTasks);
        }