Files
lmxopcua/src/ZB.MOM.WW.LmxOpcUa.Client.UI/Views/MainWindow.axaml.cs
Joseph Doherty 41a6b66943 Apply code style formatting and restore partial modifiers on Avalonia views
Linter/formatter pass across the full codebase. Restores required partial
keyword on AXAML code-behind classes that the formatter incorrectly removed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 07:58:13 -04:00

46 lines
1.6 KiB
C#

using System.ComponentModel;
using Avalonia.Controls;
using Avalonia.Interactivity;
using ZB.MOM.WW.LmxOpcUa.Client.UI.ViewModels;
namespace ZB.MOM.WW.LmxOpcUa.Client.UI.Views;
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
protected override void OnLoaded(RoutedEventArgs e)
{
base.OnLoaded(e);
var browseTreeView = this.FindControl<BrowseTreeView>("BrowseTreePanel");
var treeView = browseTreeView?.FindControl<TreeView>("BrowseTree");
if (treeView != null) treeView.SelectionChanged += OnTreeSelectionChanged;
// Wire up context menu opening to sync selection and check history
var contextMenu = this.FindControl<ContextMenu>("TreeContextMenu");
if (contextMenu != null) contextMenu.Opening += OnTreeContextMenuOpening;
}
private void OnTreeSelectionChanged(object? sender, SelectionChangedEventArgs e)
{
if (DataContext is not MainWindowViewModel vm || sender is not TreeView treeView) return;
// Update single selection for read/write and history panels
vm.SelectedTreeNode = treeView.SelectedItem as TreeNodeViewModel;
// Sync multi-selection collection
vm.SelectedTreeNodes.Clear();
foreach (var item in treeView.SelectedItems)
if (item is TreeNodeViewModel node)
vm.SelectedTreeNodes.Add(node);
}
private void OnTreeContextMenuOpening(object? sender, CancelEventArgs e)
{
if (DataContext is MainWindowViewModel vm) vm.UpdateHistoryEnabledForSelection();
}
}