Ejemplo n.º 1
0
        public override AutoTile SaveWindowControls(StackPanel control, string name, Type type, object[] attributes)
        {
            int controlIndex = 0;

            controlIndex++;
            TileBox          lbxValue = (TileBox)control.Children[controlIndex];
            TileBoxViewModel mv       = (TileBoxViewModel)lbxValue.DataContext;

            return(mv.Tile);
        }
Ejemplo n.º 2
0
        public override void LoadWindowControls(StackPanel control, string parent, string name, Type type, object[] attributes, AutoTile member)
        {
            LoadLabelControl(control, name);

            TileBox          cbxValue = new TileBox();
            TileBoxViewModel mv       = new TileBoxViewModel();

            cbxValue.DataContext = mv;

            //add lambda expression for editing a single element
            mv.OnEditItem += (AutoTile element, TileBoxViewModel.EditElementOp op) =>
            {
                TileEditForm      frmData = new TileEditForm();
                TileEditViewModel tmv     = new TileEditViewModel();
                frmData.DataContext = tmv;
                tmv.Name            = name + "/" + type.Name;

                //load as if eyedropping
                tmv.TileBrowser.TileSize = GraphicsManager.TileSize;
                tmv.LoadTile(element);

                tmv.SelectedOKEvent += () =>
                {
                    element = tmv.GetTile();
                    op(element);
                    frmData.Close();
                };
                tmv.SelectedCancelEvent += () =>
                {
                    frmData.Close();
                };

                control.GetOwningForm().RegisterChild(frmData);
                frmData.Show();
            };
            mv.LoadFromSource(member);
            control.Children.Add(cbxValue);
        }