private void OnDesignButtonClick(object sender, RoutedEventArgs e)
        {
            const string fontSizePropertyName    = "FontSize";
            const string layoutValuePropertyName = "LayoutValue";

            var fontSizeArg     = ModelItem.Properties[fontSizePropertyName].ComputedValue as InArgument <double>;
            var fontSizeLiteral = fontSizeArg.Expression as Literal <double>;

            var dlgmodel = new RclDialogLayoutViewModel
            {
                Title       = "Настройка диалога",
                DialogHeder = "Диалог",
                LayoutHeder = "Свойства",
                FontSize    = fontSizeLiteral == null ? ModelItem.Properties[fontSizePropertyName].DefaultValue.To(12d) : fontSizeLiteral.Value,
                LayoutValue = ModelItem.Properties[layoutValuePropertyName].ComputedValue.To <string>()
            };

            var collection       = ModelItem.Properties["Fields"].Collection;
            var actualCollection = collection.GetCurrentValue() as IEnumerable <ValueDataField>;

            dlgmodel.Fields.AddRange(actualCollection);
            dlgmodel.UpdateSource();

            var viewService = IoC.Instance.Resolve <IViewService>();

            if (viewService.ShowDialogWindow(viewModel: dlgmodel, isRestoredLayout: false) == true) //Не менять isRestoredLayout на true. Проблемы с отображением формы в WorkflowDesigner'е.
            {
                using (var scope = collection.BeginEdit())
                {
                    ModelItem.Properties[layoutValuePropertyName].SetValue(dlgmodel.LayoutValue);
                    scope.Complete();
                }
            }
        }
예제 #2
0
        public RclDesignerView()
        {
            InitializeComponent();

            DataContextChanged += (s, e) =>
            {
                _model = DataContext as RclDialogLayoutViewModel;
                if (_model == null)
                {
                    return;
                }

                _model.IsWfDesignMode = true;
                RefreshBinding();
            };

            Loaded += OnLoaded;
        }