public void SetViewModel(ComponentTemplateMainPropertiesVM viewModel)
        {
            //_viewModel = viewModel;
            //DataContext = viewModel;
            //FormulaEditorView.SetViewModel(_viewModel.FormulaEditor);
            MineralCostFormulaStackLayout.SuspendLayout();
            MineralCostFormulaStackLayout.Items.Clear();
            foreach (var item in viewModel.MineralCostFormula)
            {
                MineralCostFormulaStackLayout.Items.Add(new MineralFormulaView(item));
            }
            viewModel.MineralCostFormula.CollectionChanged += MineralCostFormula_CollectionChanged;
            MineralCostFormulaStackLayout.ResumeLayout();

            MountTypes.SuspendLayout();
            MountTypes.Items.Clear();
            foreach (var item in viewModel.MountType)
            {
                ECSLib.ComponentMountType key = item.Key;
                CheckBox chkbx = new CheckBox();
                chkbx.Text = key.ToString();
                //chkbx.CheckedBinding.BindDataContext((DictionaryVM<ECSLib.ComponentMountType, bool?, bool?> x) => x[kvp.Key], (m, val) => m[kvp.Key] = val);
                chkbx.CheckedBinding.BindDataContext((ObservableDictionary <ECSLib.ComponentMountType, bool?> x) => x[key], (m, val) => m[key] = val);
                chkbx.DataContext = viewModel.MountType;
                MountTypes.Items.Add(chkbx);
            }
            MountTypes.ResumeLayout();
            viewModel.MountType.PropertyChanged += MountType_PropertyChanged;
        }
 private void ComponentTemplateMainPropertiesView_DataContextChanged(object sender, System.EventArgs e)
 {
     if (DataContext is ComponentTemplateMainPropertiesVM)
     {
         ComponentTemplateMainPropertiesVM dc = (ComponentTemplateMainPropertiesVM)DataContext;
         SetViewModel(dc);
     }
 }
        private void MineralCostFormula_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
        {
            ComponentTemplateMainPropertiesVM viewModel = (ComponentTemplateMainPropertiesVM)DataContext;

            MineralCostFormulaStackLayout.Items.Clear();
            foreach (var item in viewModel.MineralCostFormula)
            {
                MineralCostFormulaStackLayout.Items.Add(new MineralFormulaView(item));
            }
        }