浏览代码

Allow delegate types to get a value

CPKreuz 1 年之前
父节点
当前提交
cd63464ceb
共有 1 个文件被更改,包括 8 次插入2 次删除
  1. 8 2
      src/PixiEditor.AvaloniaUI/ViewModels/Nodes/NodePropertyViewModel.cs

+ 8 - 2
src/PixiEditor.AvaloniaUI/ViewModels/Nodes/NodePropertyViewModel.cs

@@ -110,8 +110,14 @@ internal abstract class NodePropertyViewModel : ViewModelBase, INodePropertyHand
 
     public static NodePropertyViewModel? CreateFromType(Type type, INodeHandler node)
     {
-        string name = type.Name;
-        name += "PropertyViewModel";
+        Type propertyType = type;
+        
+        if (type.IsAssignableTo(typeof(Delegate)))
+        {
+            propertyType = type.GetMethod("Invoke").ReturnType;
+        }
+        
+        string name = $"{propertyType.Name}PropertyViewModel";
         
         Type viewModelType = Type.GetType($"PixiEditor.AvaloniaUI.ViewModels.Nodes.Properties.{name}");
         if (viewModelType == null)