mirror of
https://gitee.com/langsisi_admin/serein-flow
synced 2026-04-08 08:56:35 +08:00
1. 重新设计了Generate项目及相关特性的命名,避免与其他类型混淆。
2. 补充了部分注释。 3. 修改了删除容器节点时,容器内子节点未正确删除的问题。
This commit is contained in:
@@ -11,9 +11,19 @@ using System.Windows.Input;
|
||||
|
||||
namespace Serein.Workbench.Themes
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 描述或名称转换器
|
||||
/// </summary>
|
||||
public class DescriptionOrNameConverter : IMultiValueConverter
|
||||
{
|
||||
/// <summary>
|
||||
/// 将源类型的数组转换为目标类型的值。
|
||||
/// </summary>
|
||||
/// <param name="values"></param>
|
||||
/// <param name="targetType"></param>
|
||||
/// <param name="parameter"></param>
|
||||
/// <param name="culture"></param>
|
||||
/// <returns></returns>
|
||||
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
string description = values[0] as string;
|
||||
@@ -21,15 +31,34 @@ namespace Serein.Workbench.Themes
|
||||
return string.IsNullOrWhiteSpace(description) ? name : description;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 将值从目标类型转换回源类型的数组。
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="targetTypes"></param>
|
||||
/// <param name="parameter"></param>
|
||||
/// <param name="culture"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="NotImplementedException"></exception>
|
||||
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 多条件转换器,根据参数类型和是否启用来决定返回的模板
|
||||
/// </summary>
|
||||
public class MultiConditionConverter : IMultiValueConverter
|
||||
{
|
||||
/// <summary>
|
||||
/// 将源类型的数组转换为目标类型的值。
|
||||
/// </summary>
|
||||
/// <param name="values"></param>
|
||||
/// <param name="targetType"></param>
|
||||
/// <param name="parameter"></param>
|
||||
/// <param name="culture"></param>
|
||||
/// <returns></returns>
|
||||
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
if (values.Length == 2 && values[0] is Type valueType && values[1] is bool isEnabled)
|
||||
@@ -51,30 +80,53 @@ namespace Serein.Workbench.Themes
|
||||
return DependencyProperty.UnsetValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 将值从目标类型转换回源类型的数组。
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="targetTypes"></param>
|
||||
/// <param name="parameter"></param>
|
||||
/// <param name="culture"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="NotImplementedException"></exception>
|
||||
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 数据上下文代理类,用于绑定到DataContextProperty
|
||||
/// </summary>
|
||||
public class DataContextProxy : Freezable
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据上下文代理类构造函数
|
||||
/// </summary>
|
||||
public DataContextProxy()
|
||||
{
|
||||
BindingOperations.SetBinding(this, DataContextProperty, new Binding());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 数据上下文属性
|
||||
/// </summary>
|
||||
public ParameterDetails DataContext
|
||||
{
|
||||
get { return (ParameterDetails)GetValue(DataContextProperty); }
|
||||
set { SetValue(DataContextProperty, value); }
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 数据上下文依赖属性
|
||||
/// </summary>
|
||||
public static readonly DependencyProperty DataContextProperty = FrameworkElement
|
||||
.DataContextProperty.AddOwner(typeof(DataContextProxy));
|
||||
|
||||
/// <summary>
|
||||
/// 创建一个新的实例,重写Freezable的CreateInstanceCore方法。
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
protected override Freezable CreateInstanceCore()
|
||||
{
|
||||
return new DataContextProxy();
|
||||
@@ -123,10 +175,15 @@ namespace Serein.Workbench.Themes
|
||||
//var MethodDetails = (MethodDetails)args.NewValue;
|
||||
//MethodDetails.ExplicitDatas[0].
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加参数命令
|
||||
/// </summary>
|
||||
|
||||
public ICommand CommandAddParams { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 方法参数控件构造函数
|
||||
/// </summary>
|
||||
public MethodDetailsControl()
|
||||
{
|
||||
CommandAddParams = new RelayCommand(ExecuteAddParams);
|
||||
|
||||
Reference in New Issue
Block a user