优化了Workbench上的操作。

This commit is contained in:
fengjiayi
2025-05-30 23:31:31 +08:00
parent f0eb11c914
commit a19733eff5
35 changed files with 807 additions and 225 deletions

View File

@@ -64,7 +64,7 @@
<local:ExecuteJunctionControl Grid.Column="0" MyNode="{Binding NodeModel}" x:Name="ExecuteJunctionControl" HorizontalAlignment="Left" Grid.RowSpan="2"/>
<StackPanel Grid.Column="1" Grid.RowSpan="2" >
<TextBlock Text="{Binding NodeModel.DisplayName, Mode=TwoWay}" HorizontalAlignment="Center"/>
<TextBlock Text="{Binding NodeModel.DisplayName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Center"/>
</StackPanel>
<local:NextStepJunctionControl Grid.Column="2" MyNode="{Binding NodeModel}" x:Name="NextStepJunctionControl" HorizontalAlignment="Right" Grid.RowSpan="2"/>

View File

@@ -39,7 +39,7 @@
<local:ExecuteJunctionControl Grid.Column="0" MyNode="{Binding NodeModel}" x:Name="ExecuteJunctionControl" HorizontalAlignment="Left" Grid.RowSpan="2"/>
<Border Grid.Column="1" BorderThickness="1" HorizontalAlignment="Stretch">
<TextBlock Text="条件节点" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock Text="{Binding NodeModel.DisplayName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Center"/>
</Border>
<local:NextStepJunctionControl Grid.Column="2" MyNode="{Binding NodeModel}" x:Name="NextStepJunctionControl" HorizontalAlignment="Right" Grid.RowSpan="2"/>

View File

@@ -17,13 +17,14 @@ namespace Serein.Workbench.Node.View
base.ViewModel = new ConditionNodeControlViewModel (new SingleConditionNode(env));
base.ViewModel.IsEnabledOnView = false;
DataContext = ViewModel;
base.ViewModel.NodeModel.DisplayName = "[条件节点]";
InitializeComponent();
}
public ConditionNodeControl(ConditionNodeControlViewModel viewModel):base(viewModel)
{
DataContext = viewModel;
viewModel.NodeModel.DisplayName = "[条件节点]";
InitializeComponent();
}

View File

@@ -27,7 +27,7 @@
<local:ExecuteJunctionControl Grid.Column="0" MyNode="{Binding NodeModel}" x:Name="ExecuteJunctionControl" HorizontalAlignment="Left" Grid.RowSpan="2"/>
<Border Grid.Column="1" BorderThickness="1" HorizontalAlignment="Stretch">
<TextBlock Text="表达式" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock Text="{Binding NodeModel.DisplayName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Center"/>
</Border>
<local:NextStepJunctionControl Grid.Column="2" MyNode="{Binding NodeModel}" x:Name="NextStepJunctionControl" HorizontalAlignment="Right" Grid.RowSpan="2"/>

View File

@@ -15,12 +15,14 @@ namespace Serein.Workbench.Node.View
var env = App.GetService<IFlowEnvironment>();
ViewModel = new ExpOpNodeControlViewModel(new SingleExpOpNode(env));
base.ViewModel.IsEnabledOnView = false;
base.ViewModel.NodeModel.DisplayName = "[表达式]";
DataContext = ViewModel;
InitializeComponent();
}
public ExpOpNodeControl(ExpOpNodeControlViewModel viewModel) :base(viewModel)
{
DataContext = viewModel;
viewModel.NodeModel.DisplayName = "[表达式]";
InitializeComponent();
}

View File

@@ -37,7 +37,7 @@
<local:ExecuteJunctionControl Grid.Column="0" MyNode="{Binding NodeModel}" x:Name="ExecuteJunctionControl" HorizontalAlignment="Left" Grid.RowSpan="2"/>
<Border Grid.Column="1" BorderThickness="1" HorizontalAlignment="Stretch">
<TextBlock Text="全局数据节点" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock Text="{Binding NodeModel.DisplayName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Center"/>
</Border>
<local:NextStepJunctionControl Grid.Column="2" MyNode="{Binding NodeModel}" x:Name="NextStepJunctionControl" HorizontalAlignment="Right" Grid.RowSpan="2"/>

View File

@@ -16,6 +16,7 @@ namespace Serein.Workbench.Node.View
var env = App.GetService<IFlowEnvironment>();
base.ViewModel = new GlobalDataNodeControlViewModel(new SingleGlobalDataNode(env));
base.ViewModel.IsEnabledOnView = false;
base.ViewModel.NodeModel.DisplayName = "[全局数据]";
DataContext = ViewModel;
InitializeComponent();
}
@@ -23,6 +24,7 @@ namespace Serein.Workbench.Node.View
public GlobalDataControl(GlobalDataNodeControlViewModel viewModel) : base(viewModel)
{
DataContext = viewModel;
viewModel.NodeModel.DisplayName = "[全局数据]";
InitializeComponent();
}

View File

@@ -73,7 +73,8 @@ namespace Serein.Workbench.Node.View
// 获取 MethodDetailsControl 实例
var methodDetailsControl = this.MethodDetailsControl;
var itemsControl = FindVisualChild<ItemsControl>(methodDetailsControl); // 查找 ItemsControl
if (itemsControl != null)
if (itemsControl != null && base.ViewModel.NodeModel.MethodDetails != null)
{
var argDataJunction = new JunctionControlBase[base.ViewModel.NodeModel.MethodDetails.ParameterDetailss.Length];
var controls = new List<JunctionControlBase>();

View File

@@ -27,13 +27,14 @@
</Grid.ColumnDefinitions>
<local:ExecuteJunctionControl Grid.Column="0" MyNode="{Binding NodeModel}" x:Name="ExecuteJunctionControl" HorizontalAlignment="Left" Grid.RowSpan="2"/>
<Border Grid.Column="1" BorderThickness="1" HorizontalAlignment="Stretch">
<TextBlock Text="UI控件" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock Text="{Binding NodeModel.DisplayName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Center"/>
</Border>
</Grid>
<!--显示UI-->
<Border x:Name="EmbedContainer" Width="200" Height="200" Grid.Row="1" BorderBrush="Black" BorderThickness="1">
<!--<ContentControl />-->
</Border>

View File

@@ -26,6 +26,7 @@ namespace Serein.Workbench.Node.View
public UINodeControl()
{
base.ViewModel.IsEnabledOnView = true;
base.ViewModel.NodeModel.DisplayName = "[流程UI]";
InitializeComponent();
}
@@ -33,6 +34,7 @@ namespace Serein.Workbench.Node.View
{
ViewModel = viewModel;
DataContext = viewModel;
ViewModel.NodeModel.DisplayName = "[流程UI]";
InitializeComponent();