using CommunityToolkit.Mvvm.ComponentModel; using OpenTap; using OpenTap.Addin; using System.Collections.ObjectModel; using System.Windows; using System.Windows.Controls; namespace OpenTapEditor { /// /// VariablesControl.xaml 的交互逻辑 /// [ObservableObject] public partial class VariablesControl : UserControl { public event EventHandler SequencePropertyChanged; public static DependencyProperty VariablesProperty = DependencyProperty.Register("Variables", typeof(ObservableCollection), typeof(VariablesControl), new PropertyMetadata(null)); public ObservableCollection Variables { get => (ObservableCollection)GetValue(VariablesProperty); set { SetValue(VariablesProperty, value); } } private TestPlan plan; public VariablesControl() { DataContext = this; InitializeComponent(); Variables = new ObservableCollection() { new TestVariable(){ Name = "Locals", NameCanEdit = false, Type = TestVariableType.Container }, new TestVariable(){ Name = "Parameters", NameCanEdit = false, Type = TestVariableType.Container }, new TestVariable(){ Name = "FileGlobals", NameCanEdit = false, Type = TestVariableType.Container }, new TestVariable(){ Name = "StationGlobals", NameCanEdit = false, Type = TestVariableType.Container, Children = UIStationGlobalsManager.Instance.Datasource }, }; } public void SetPlan(TestPlan plan) { this.plan = plan; if (plan == null) { Variables = new ObservableCollection(); } else { Variables[2].ContextName = plan.VisualPath; Variables[2].Children = plan.Variables; } } public void SetSeq(TestStepList seq) { Variables[0].Children = seq?.Variables; Variables[0].ContextName = seq?.SequenceName; Variables[1].Children = seq?.Parameters; Variables[1].ContextName = seq?.SequenceName; } } }