Software Develop/side project

Jaywapp.BuilderWizard

jaywapp 2023. 1. 16. 00:02

github

 

GitHub - jaywapp/Jaywapp.BuilderWizard: Wizard dialog for creating Builder patterns

Wizard dialog for creating Builder patterns. Contribute to jaywapp/Jaywapp.BuilderWizard development by creating an account on GitHub.

github.com

BuilderWizard란?

빌더 패턴에서 개체를 만드는 마법사 다이얼로그니다. 사용자는 다른 View를 만들고 추가하여 빌더 패턴에서 개체를 만들 수 있습니다.

사용방법

1. Builder

빌더의 개체를 정의합니다. 이는 IJayBuilder 인터페이스를 상속하여 정의합니다.

public class Builder : IJayBuilder
{
    public object Build()
    {
        return default;
    }
}

2. Configuration View & ViewModel

각 뷰 모델을 사용하여 구성 뷰를 생성합니다. 현재 뷰 수는 여러 개일 수 있습니다. 생성된 뷰는 IJayBuilderConfigView를 상속하고 뷰 모델은 IJayBuilderConfigView Model을 상속합니다.

ConfigView

public partial class ConfigView : UserControl, IJayBuilderConfigView
{
    public IJayBuilderConfigViewModel ViewModel => DataContext as IJayBuilderConfigViewModel;

    public ConfigView()
    {
        InitializeComponent();
    }
}

ConfigViewModel

public class ConfigViewModel : ReactiveObject, IJayBuilderConfigViewModel
{
    public IJayBuilder Builder { get; set; }
}

3. Use Wizard Dialog

var builder = new Builder();

var configView1 = new ConfigView1();
var configView2 = new ConfigView2();
var configViewModel1 = new ConfigViewModel1();
var configViewModel2 = new ConfigViewModel2();

configView1.DataContext = configViewModel1;
configView2.DataContext = configViewModel2;

var wizard = new JayBuilderWizard("Test", builder, configView1, configView2);
if (wizard.ShowDialog() != true)
    return;

var result = wizard.Builder.Build();