Skip to content

Conversation

@hexawyz
Copy link
Contributor

@hexawyz hexawyz commented Jan 6, 2026

📝 Description of the Change

This adds DataTemplateSelector properties to NodifyEditor for each DataTemplate property.
See: #252

Testing ConnectionTemplateSelector here:

image
using System.Windows;
using System.Windows.Controls;

namespace Nodify.Playground
{
    public sealed class ConnectionTemplateSelector : DataTemplateSelector
    {
        public DataTemplate? Circle { get; set; }
        public DataTemplate? Triangle { get; set; }
        public DataTemplate? Square { get; set; }
        public DataTemplate? Default { get; set; }

        public override DataTemplate? SelectTemplate(object item, DependencyObject container)
        {
            if (item is ConnectionViewModel viewModel)
            {
                return viewModel.Input.Shape switch
                {
                    ConnectorShape.Circle => Circle,
                    ConnectorShape.Triangle => Triangle,
                    ConnectorShape.Square => Square,
                    _ => Default,
                };
            }
            return base.SelectTemplate(item, container);
        }
    }
}
        <local:ConnectionTemplateSelector x:Key="ConnectionTemplateSelector"
                                          Circle="{StaticResource ConnectionTemplate}"
                                          Triangle="{StaticResource CircuitConnectionTemplate}"
                                          Square="{StaticResource StepConnectionTemplate}" />

🐛 Possible Drawbacks

None that I know of.

@miroiu miroiu merged commit 1e4d360 into miroiu:master Jan 6, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants