using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.Media; using ZB.MOM.WW.OtOpcUa.Client.UI.ViewModels; namespace ZB.MOM.WW.OtOpcUa.Client.UI.Views; public partial class WriteValueWindow : Window { private readonly SubscriptionsViewModel _subscriptionsVm; private readonly string _nodeId; /// Initializes a default instance of the WriteValueWindow for XAML designer support. public WriteValueWindow() { InitializeComponent(); _subscriptionsVm = null!; _nodeId = string.Empty; } /// Initializes a WriteValueWindow with the node to write and its current value. /// The subscriptions view model for write operations. /// The OPC UA node ID to write to. /// The current value of the node, or null if unknown. public WriteValueWindow(SubscriptionsViewModel subscriptionsVm, string nodeId, string? currentValue) { InitializeComponent(); _subscriptionsVm = subscriptionsVm; _nodeId = nodeId; var nodeIdText = this.FindControl("NodeIdText"); if (nodeIdText != null) nodeIdText.Text = nodeId; var currentValueText = this.FindControl("CurrentValueText"); if (currentValueText != null) currentValueText.Text = currentValue ?? "(null)"; // Pre-fill the write input with the current value var writeInput = this.FindControl("WriteValueInput"); if (writeInput != null) writeInput.Text = currentValue ?? ""; var writeButton = this.FindControl