feat: 初始化NewLife Studio项目,完成基础框架与数据管理模块
何炳宏 authored at 2026-05-26 12:09:09
1.10 KiB
NewLife.Studio
using Avalonia.Controls;
using NewLife.Studio.Modules.DataStudio.ViewModels;

namespace NewLife.Studio.Modules.DataStudio.Views;

public partial class SqlEditorView : UserControl
{
    private SqlEditorViewModel? _viewModel;

    public SqlEditorView()
    {
        InitializeComponent();

        DataContextChanged += (_, _) =>
        {
            if (_viewModel != null)
                _viewModel.PropertyChanged -= OnVmPropertyChanged;

            _viewModel = DataContext as SqlEditorViewModel;

            if (_viewModel != null)
            {
                _viewModel.PropertyChanged += OnVmPropertyChanged;
                SyncResultGrid();
            }
        };
    }

    private void OnVmPropertyChanged(object? sender, System.ComponentModel.PropertyChangedEventArgs e)
    {
        if (e.PropertyName == nameof(SqlEditorViewModel.ActiveTab))
        {
            SyncResultGrid();
        }
    }

    private void SyncResultGrid()
    {
        if (_viewModel?.ActiveTab?.ResultGrid != null)
        {
            ResultGridControl.DataContext = _viewModel.ActiveTab.ResultGrid;
        }
    }
}