using AIStudio.Wpf.Controls;
using GongSolutions.Wpf.DragDrop;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Windows.Controls;
using WPFProject.Models;
using WPFProject.Utils;
namespace WPFProject.UI.Test
{
///
/// SequnceList.xaml 的交互逻辑
///
public partial class SequnceList : 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);
}
}
public SequnceList()
{
DataContext = this;
Sequences = new ObservableCollection
{
new Sequence{ Name="SSSSS"},
new Sequence{ Name="SSSSS2"},
};
Steps = Sequences[0].Steps;
InitializeComponent();
}
private ObservableCollection _ps = new ObservableCollection();
public ObservableCollection Ps
{
get => _ps;
set => RaiseAndSetIfChanged(ref _ps, value);
}
private ObservableCollection _Sequences;
public ObservableCollection Sequences
{
get => _Sequences;
set
{
if (value != null && value.Count > 0)
{
Steps = value[0].Steps;
}
else {
Steps = null;
}
RaiseAndSetIfChanged(ref _Sequences, value);
}
}
private ObservableCollection _Steps;
public ObservableCollection Steps
{
get => _Steps;
set => RaiseAndSetIfChanged(ref _Steps, value);
}
public void Selected_Program_Changed(object sender, Program program)
{
this.Sequences = program.Sequences;
}
private void ListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (e.AddedItems.Count > 0)
{
Steps = (e.AddedItems[0] as Sequence).Steps;
}
}
public IDropTarget dropHandler { get; set; } = new DdDropHandler();
}
}