using Plugin.TestBuilder.Model; using System; using System.Collections.ObjectModel; using System.ComponentModel; using System.Runtime.CompilerServices; using System.Windows.Controls; namespace Plugin.TestBuilder { /// /// ProgramList.xaml 的交互逻辑 /// public partial class ProgramList : UserControl, INotifyPropertyChanged { public virtual event PropertyChangedEventHandler PropertyChanged; protected virtual void RaisePropertyChanged(string name) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); } protected void RaiseAndSetIfChanged(ref T old, T @new, [CallerMemberName] string propertyName = null) { old = @new; if (propertyName != null) { RaisePropertyChanged(propertyName); } } private ObservableCollection _Programs = new ObservableCollection { new Program{ Name="123"}.AddSequnce(new Sequence{ Name="S123" },new Sequence { Name="S223" }), new Program{ Name="223"}.AddSequnce(new Sequence{ Name="D123" },new Sequence { Name="D223" }) }; public ObservableCollection Programs { get { return _Programs; } set => RaiseAndSetIfChanged(ref _Programs, value); } public ProgramList() { DataContext = this; InitializeComponent(); } public event EventHandler ProgramChanged; private void ListView_SelectionChanged(object sender, SelectionChangedEventArgs e) { ttt(); if (e.AddedItems.Count > 0) { Program program = e.AddedItems[0] as Program; ProgramChanged?.Invoke(this, program); program.RunProgram(); } } public void ttt() { //string path = "X:\\vs\\WPFProject\\test.xml"; //XmlUtil.SerialToFile(Programs, path); } } }