    

 ## On this page

  

 

 # Class AbstractVariableBasedBuilderUI&lt;RUNNER&gt;

 Last update: 19.06.2026 

Namespace: [Phoenix.ComponentPlugInSDK](Phoenix.ComponentPlugInSDK.md)  
Assembly: Phoenix.ComponentPlugInSDK.dll

This class provides a common UI for a variable based HarnessBuilderUI component.

```csharp
public abstract class AbstractVariableBasedBuilderUI<RUNNER> : AbstractVariableBasedBuilderUI<RUNNER, VariableBasedBuilderModel>, IHarnessBuilderUI<RUNNER>, IHarnessBuilderUIBase, IDisposable where RUNNER : IHarnessRunner


```

#### Type Parameters

`RUNNER`

The type of IHarnessRunner that this builder edits.

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) ← AbstractDisposable ← [AbstractBuilderUI&lt;RUNNER&gt;](Phoenix.ComponentPlugInSDK.AbstractBuilderUI-1.md) ← [AbstractModelBasedBuilderUI&lt;RUNNER, VariableBasedBuilderModel&gt;](Phoenix.ComponentPlugInSDK.AbstractModelBasedBuilderUI-2.md) ← [AbstractVariableBasedBuilderUI&lt;RUNNER, VariableBasedBuilderModel&gt;](Phoenix.ComponentPlugInSDK.AbstractVariableBasedBuilderUI-2.md) ← [AbstractVariableBasedBuilderUI&lt;RUNNER&gt;](Phoenix.ComponentPlugInSDK.AbstractVariableBasedBuilderUI-1.md)

#### Implements

IHarnessBuilderUI&lt;RUNNER&gt;, IHarnessBuilderUIBase, [IDisposable](https://learn.microsoft.com/dotnet/api/system.idisposable)

#### Inherited Members

[AbstractVariableBasedBuilderUI&lt;RUNNER, VariableBasedBuilderModel&gt;.CreateWindow()](Phoenix.ComponentPlugInSDK.AbstractVariableBasedBuilderUI-2.CreateWindow.md#Phoenix_ComponentPlugInSDK_AbstractVariableBasedBuilderUI_2_CreateWindow), [AbstractVariableBasedBuilderUI&lt;RUNNER, VariableBasedBuilderModel&gt;.GetTreeProperties()](Phoenix.ComponentPlugInSDK.AbstractVariableBasedBuilderUI-2.GetTreeProperties.md#Phoenix_ComponentPlugInSDK_AbstractVariableBasedBuilderUI_2_GetTreeProperties), [AbstractVariableBasedBuilderUI&lt;RUNNER, VariableBasedBuilderModel&gt;.GetFileLoadProperties()](Phoenix.ComponentPlugInSDK.AbstractVariableBasedBuilderUI-2.GetFileLoadProperties.md#Phoenix_ComponentPlugInSDK_AbstractVariableBasedBuilderUI_2_GetFileLoadProperties), [AbstractVariableBasedBuilderUI&lt;RUNNER, VariableBasedBuilderModel&gt;.SetupView(IExtractedPacz, VariableBasedBuilderViewModel, Menu)](Phoenix.ComponentPlugInSDK.AbstractVariableBasedBuilderUI-2.SetupView.md#Phoenix_ComponentPlugInSDK_AbstractVariableBasedBuilderUI_2_SetupView_Phoenix_PaczAPI_IExtractedPacz_Phoenix_ComponentPlugInSDK_ViewModels_VariableBasedBuilderViewModel_System_Windows_Controls_Menu_), [AbstractModelBasedBuilderUI&lt;RUNNER, VariableBasedBuilderModel&gt;.LoadFromPaczAsync(IExtractedPacz)](Phoenix.ComponentPlugInSDK.AbstractModelBasedBuilderUI-2.LoadFromPaczAsync.md#Phoenix_ComponentPlugInSDK_AbstractModelBasedBuilderUI_2_LoadFromPaczAsync_Phoenix_PaczAPI_IExtractedPacz_), [AbstractModelBasedBuilderUI&lt;RUNNER, VariableBasedBuilderModel&gt;.SaveToPaczAsync(IExtractedPacz)](Phoenix.ComponentPlugInSDK.AbstractModelBasedBuilderUI-2.SaveToPaczAsync.md#Phoenix_ComponentPlugInSDK_AbstractModelBasedBuilderUI_2_SaveToPaczAsync_Phoenix_PaczAPI_IExtractedPacz_), [AbstractModelBasedBuilderUI&lt;RUNNER, VariableBasedBuilderModel&gt;.Model](Phoenix.ComponentPlugInSDK.AbstractModelBasedBuilderUI-2.Model.md#Phoenix_ComponentPlugInSDK_AbstractModelBasedBuilderUI_2_Model), [AbstractModelBasedBuilderUI&lt;RUNNER, VariableBasedBuilderModel&gt;.ConstructAsync(IHarnessBuilderUIHost&lt;RUNNER&gt;)](Phoenix.ComponentPlugInSDK.AbstractModelBasedBuilderUI-2.ConstructAsync.md#Phoenix_ComponentPlugInSDK_AbstractModelBasedBuilderUI_2_ConstructAsync_Phoenix_ComponentBuilderAPI_IHarnessBuilderUIHost__0__), [AbstractModelBasedBuilderUI&lt;RUNNER, VariableBasedBuilderModel&gt;.\_saveAsync(IBuilderUIModel)](Phoenix.ComponentPlugInSDK.AbstractModelBasedBuilderUI-2._saveAsync.md#Phoenix_ComponentPlugInSDK_AbstractModelBasedBuilderUI_2__saveAsync_Phoenix_ComponentPlugInSDK_Models_IBuilderUIModel_), [AbstractModelBasedBuilderUI&lt;RUNNER, VariableBasedBuilderModel&gt;.Dispose(bool)](Phoenix.ComponentPlugInSDK.AbstractModelBasedBuilderUI-2.Dispose.md#Phoenix_ComponentPlugInSDK_AbstractModelBasedBuilderUI_2_Dispose_System_Boolean_), [AbstractBuilderUI&lt;RUNNER&gt;.\_window](Phoenix.ComponentPlugInSDK.AbstractBuilderUI-1._window.md#Phoenix_ComponentPlugInSDK_AbstractBuilderUI_1__window), [AbstractBuilderUI&lt;RUNNER&gt;.Dispose(bool)](Phoenix.ComponentPlugInSDK.AbstractBuilderUI-1.Dispose.md#Phoenix_ComponentPlugInSDK_AbstractBuilderUI_1_Dispose_System_Boolean_), [AbstractBuilderUI&lt;RUNNER&gt;.ComponentName](Phoenix.ComponentPlugInSDK.AbstractBuilderUI-1.ComponentName.md#Phoenix_ComponentPlugInSDK_AbstractBuilderUI_1_ComponentName), [AbstractBuilderUI&lt;RUNNER&gt;.ComponentIcon](Phoenix.ComponentPlugInSDK.AbstractBuilderUI-1.ComponentIcon.md#Phoenix_ComponentPlugInSDK_AbstractBuilderUI_1_ComponentIcon), [AbstractBuilderUI&lt;RUNNER&gt;.CreateWindow()](Phoenix.ComponentPlugInSDK.AbstractBuilderUI-1.CreateWindow.md#Phoenix_ComponentPlugInSDK_AbstractBuilderUI_1_CreateWindow), [AbstractBuilderUI&lt;RUNNER&gt;.AddMenuItem(ItemsControl, string, RoutedEventHandler)](Phoenix.ComponentPlugInSDK.AbstractBuilderUI-1.AddMenuItem.md#Phoenix_ComponentPlugInSDK_AbstractBuilderUI_1_AddMenuItem_System_Windows_Controls_ItemsControl_System_String_System_Windows_RoutedEventHandler_), [AbstractBuilderUI&lt;RUNNER&gt;.AddAsyncMenuItem(ItemsControl, string, AbstractBuilderUI&lt;RUNNER&gt;.RoutedEventHandlerAsync)](Phoenix.ComponentPlugInSDK.AbstractBuilderUI-1.AddAsyncMenuItem.md#Phoenix_ComponentPlugInSDK_AbstractBuilderUI_1_AddAsyncMenuItem_System_Windows_Controls_ItemsControl_System_String_Phoenix_ComponentPlugInSDK_AbstractBuilderUI__0__RoutedEventHandlerAsync_), [AbstractBuilderUI&lt;RUNNER&gt;.AddMenuItem(ItemsControl, string, ImageType, bool, RoutedEventHandler)](Phoenix.ComponentPlugInSDK.AbstractBuilderUI-1.AddMenuItem.md#Phoenix_ComponentPlugInSDK_AbstractBuilderUI_1_AddMenuItem_System_Windows_Controls_ItemsControl_System_String_Phoenix_ComponentPlugInSDK_Images_ImageType_System_Boolean_System_Windows_RoutedEventHandler_), [AbstractBuilderUI&lt;RUNNER&gt;.AddAsyncMenuItem(ItemsControl, string, ImageType, bool, AbstractBuilderUI&lt;RUNNER&gt;.RoutedEventHandlerAsync)](Phoenix.ComponentPlugInSDK.AbstractBuilderUI-1.AddAsyncMenuItem.md#Phoenix_ComponentPlugInSDK_AbstractBuilderUI_1_AddAsyncMenuItem_System_Windows_Controls_ItemsControl_System_String_Phoenix_ComponentPlugInSDK_Images_ImageType_System_Boolean_Phoenix_ComponentPlugInSDK_AbstractBuilderUI__0__RoutedEventHandlerAsync_), [AbstractBuilderUI&lt;RUNNER&gt;.AddMenuItem(ItemsControl, string, ImageSource, bool, RoutedEventHandler)](Phoenix.ComponentPlugInSDK.AbstractBuilderUI-1.AddMenuItem.md#Phoenix_ComponentPlugInSDK_AbstractBuilderUI_1_AddMenuItem_System_Windows_Controls_ItemsControl_System_String_System_Windows_Media_ImageSource_System_Boolean_System_Windows_RoutedEventHandler_), [AbstractBuilderUI&lt;RUNNER&gt;.AddAsyncMenuItem(ItemsControl, string, ImageSource, bool, AbstractBuilderUI&lt;RUNNER&gt;.RoutedEventHandlerAsync)](Phoenix.ComponentPlugInSDK.AbstractBuilderUI-1.AddAsyncMenuItem.md#Phoenix_ComponentPlugInSDK_AbstractBuilderUI_1_AddAsyncMenuItem_System_Windows_Controls_ItemsControl_System_String_System_Windows_Media_ImageSource_System_Boolean_Phoenix_ComponentPlugInSDK_AbstractBuilderUI__0__RoutedEventHandlerAsync_), [AbstractBuilderUI&lt;RUNNER&gt;.SelectVariables(IEnumerable&lt;IRuntimeVariable&gt;, IEnumerable&lt;IRuntimeVariable&gt;, IPlugInViewModel, string, string, string)](Phoenix.ComponentPlugInSDK.AbstractBuilderUI-1.SelectVariables.md#Phoenix_ComponentPlugInSDK_AbstractBuilderUI_1_SelectVariables_System_Collections_Generic_IEnumerable_Phoenix_PaczAPI_IRuntimeVariable__System_Collections_Generic_IEnumerable_Phoenix_PaczAPI_IRuntimeVariable__Phoenix_ComponentPlugInSDK_ViewModels_IPlugInViewModel_System_String_System_String_System_String_), [AbstractBuilderUI&lt;RUNNER&gt;.SelectVariables(AbstractVariableProvider, IPlugInViewModel, string)](Phoenix.ComponentPlugInSDK.AbstractBuilderUI-1.SelectVariables.md#Phoenix_ComponentPlugInSDK_AbstractBuilderUI_1_SelectVariables_Phoenix_ComponentPlugInSDK_AbstractVariableProvider_Phoenix_ComponentPlugInSDK_ViewModels_IPlugInViewModel_System_String_), [AbstractBuilderUI&lt;RUNNER&gt;.SetPaczIcon(Uri, string)](Phoenix.ComponentPlugInSDK.AbstractBuilderUI-1.SetPaczIcon.md#Phoenix_ComponentPlugInSDK_AbstractBuilderUI_1_SetPaczIcon_System_Uri_System_String_), [AbstractBuilderUI&lt;RUNNER&gt;.HarnessType](Phoenix.ComponentPlugInSDK.AbstractBuilderUI-1.HarnessType.md#Phoenix_ComponentPlugInSDK_AbstractBuilderUI_1_HarnessType), [AbstractBuilderUI&lt;RUNNER&gt;.WindowClosed](Phoenix.ComponentPlugInSDK.AbstractBuilderUI-1.WindowClosed.md#Phoenix_ComponentPlugInSDK_AbstractBuilderUI_1_WindowClosed), [AbstractBuilderUI&lt;RUNNER&gt;.Host](Phoenix.ComponentPlugInSDK.AbstractBuilderUI-1.Host.md#Phoenix_ComponentPlugInSDK_AbstractBuilderUI_1_Host), [AbstractBuilderUI&lt;RUNNER&gt;.ConstructAsync(IHarnessBuilderUIHost&lt;RUNNER&gt;)](Phoenix.ComponentPlugInSDK.AbstractBuilderUI-1.ConstructAsync.md#Phoenix_ComponentPlugInSDK_AbstractBuilderUI_1_ConstructAsync_Phoenix_ComponentBuilderAPI_IHarnessBuilderUIHost__0__), [AbstractBuilderUI&lt;RUNNER&gt;.ShowAsync()](Phoenix.ComponentPlugInSDK.AbstractBuilderUI-1.ShowAsync.md#Phoenix_ComponentPlugInSDK_AbstractBuilderUI_1_ShowAsync), [AbstractBuilderUI&lt;RUNNER&gt;.TrySaveAsync()](Phoenix.ComponentPlugInSDK.AbstractBuilderUI-1.TrySaveAsync.md#Phoenix_ComponentPlugInSDK_AbstractBuilderUI_1_TrySaveAsync), [AbstractBuilderUI&lt;RUNNER&gt;.DisplayException(Exception)](Phoenix.ComponentPlugInSDK.AbstractBuilderUI-1.DisplayException.md#Phoenix_ComponentPlugInSDK_AbstractBuilderUI_1_DisplayException_System_Exception_), AbstractDisposable.disposed, AbstractDisposable.Dispose(), AbstractDisposable.IsDisposed, AbstractDisposable.Dispose(bool), [object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring), [object.Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)), [object.Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)), [object.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals), [object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode), [object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype), [object.MemberwiseClone()](https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone)