示例#1
0
        private static void BoardPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            (d as DesignerCanvas).Children.Clear();
            //初始化可视元素

            foreach (DesignerControl obj in (e.NewValue as DesignerBoard).VisualChildren)
            {
                UserControl u = BoardControlFactory.CreateBoardControlByDesignerType(obj.GetType(), obj);

                (d as DesignerCanvas).AddDesignerItem(u, new Point((obj as DesignerControl).Position.Location.X, (obj as DesignerControl).Position.Location.Y));
            }

            //注册后台元素
            foreach (DesignerDataSource ds in (e.NewValue as DesignerBoard).BackChildren)
            {
                DataSourceManager.Register(ds.Name, ds.DataSourceType, ds);
                switch (ds.DataSourceType)
                {
                case DesignerDataSourceType.DataBase:
                    DataBaseDataSourceManager.UpdateDataBaseDataSource(ds as DesignerDataBaseDataSource);
                    break;

                case DesignerDataSourceType.StaticText:
                    StaticTextDataSourceManager.UpdateStaticTextDataSource(ds as DesignerStaticTextDataSource);
                    break;
                }
            }

            ((DesignerCanvas)d).SelectItem = e.NewValue as DesignerBoard;
        }
 private void OKButton_Click(object sender, RoutedEventArgs e)
 {
     //确认后,更新每个数据源
     //Database
     foreach (DesignerDataBaseDataSource ds in DataBaseDataSourceList)
     {
         DataBaseDataSourceManager.UpdateDataBaseDataSource(ds);
     }
     //StaticText
     foreach (DesignerStaticTextDataSource ds in StaticTextDataSourceList)
     {
         StaticTextDataSourceManager.UpdateStaticTextDataSource(ds);
     }
     this.DialogResult = true;
 }
        void Init()
        {
            //加载静态文本数据源

            StaticTextDataSourceList = new ObservableCollection <DesignerStaticTextDataSource>(StaticTextDataSourceManager.GetStaticTextDataSources());

            //加载数据库数据源

            DataBaseDataSourceList = new ObservableCollection <DesignerDataBaseDataSource>(DataBaseDataSourceManager.GetDataBaseDataSources());
        }