diff --git a/MultiTerm.Core/MultiTerm.Core.csproj b/MultiTerm.Core/MultiTerm.Core.csproj
index 261ea41..1da0386 100644
--- a/MultiTerm.Core/MultiTerm.Core.csproj
+++ b/MultiTerm.Core/MultiTerm.Core.csproj
@@ -16,6 +16,7 @@
+
diff --git a/MultiTerm.Protocols/CommunicationProtocol.cs b/MultiTerm.Protocols/CommunicationProtocol.cs
index 0fc0297..1e4c575 100644
--- a/MultiTerm.Protocols/CommunicationProtocol.cs
+++ b/MultiTerm.Protocols/CommunicationProtocol.cs
@@ -6,7 +6,7 @@ public abstract class CommunicationProtocol : ICommunicationProtocol
{
public string NewlineSequenceOnSend { get; set; }
public string NewlineOnReceivedSequence { get; set; }
- public ProtocolConnectionSettings? ConnectionSettings { get; set; }
+ public ProtocolConnectionSettingsViewModel? ConnectionSettings { get; set; }
protected ILogger logger;
private CancellationTokenSource cancellationTokenSource;
diff --git a/MultiTerm.Protocols/ICommunicationProtocol.cs b/MultiTerm.Protocols/ICommunicationProtocol.cs
index 0cfc1c1..7952d0c 100644
--- a/MultiTerm.Protocols/ICommunicationProtocol.cs
+++ b/MultiTerm.Protocols/ICommunicationProtocol.cs
@@ -8,7 +8,7 @@ public interface ICommunicationProtocol
///
/// Contains settings that are required to connect using this communication protocol.
///
- ProtocolConnectionSettings? ConnectionSettings { get; }
+ ProtocolConnectionSettingsViewModel? ConnectionSettings { get; }
///
/// Newline sequence to add on the end when sending a message using .
diff --git a/MultiTerm.Protocols/MultiTerm.Protocols.csproj b/MultiTerm.Protocols/MultiTerm.Protocols.csproj
index 56e7d3b..3a461b3 100644
--- a/MultiTerm.Protocols/MultiTerm.Protocols.csproj
+++ b/MultiTerm.Protocols/MultiTerm.Protocols.csproj
@@ -1,4 +1,4 @@
-
+
net6.0
@@ -6,6 +6,10 @@
enable
+
+
+
+
diff --git a/MultiTerm.Protocols/ProtocolConnectionSettings.cs b/MultiTerm.Protocols/ProtocolConnectionSettings.cs
deleted file mode 100644
index e5670d2..0000000
--- a/MultiTerm.Protocols/ProtocolConnectionSettings.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-namespace MultiTerm.Protocols;
-
-///
-/// Class that represents all connection settings for a specific .
-///
-public abstract class ProtocolConnectionSettings
-{
- public event EventHandler ConnectRequested;
-}
diff --git a/MultiTerm.Protocols/ProtocolConnectionSettingsViewModel.cs b/MultiTerm.Protocols/ProtocolConnectionSettingsViewModel.cs
new file mode 100644
index 0000000..5796603
--- /dev/null
+++ b/MultiTerm.Protocols/ProtocolConnectionSettingsViewModel.cs
@@ -0,0 +1,40 @@
+using CommunityToolkit.Mvvm.ComponentModel;
+using CommunityToolkit.Mvvm.Input;
+
+namespace MultiTerm.Protocols;
+
+///
+/// Class that represents all connection settings for a specific .
+/// Can be bound to UI using MVVM pattern.
+///
+public abstract partial class ProtocolConnectionSettingsViewModel : ObservableObject
+{
+ ///
+ /// Event that is thrown when the user requested to connect to the device with the entered settings.
+ ///
+ public event EventHandler? ConnectRequested;
+
+ ///
+ /// Event that is thrown when the user requested to disconnect from the device.
+ ///
+ public event EventHandler? DisconnectRequested;
+
+ ///
+ /// Indicates wether the settings can currently be edited.
+ ///
+ public bool AreEditable;
+
+
+ [ObservableProperty]
+ private string connectDisconnectButtonText = "Connect";
+
+ ///
+ /// Binding to Connect/Disconnect button.
+ /// Button text is provided in
+ ///
+ [RelayCommand]
+ private void ConnectDisconnect()
+ {
+
+ }
+}