164 lines
4.7 KiB
C#
164 lines
4.7 KiB
C#
|
using CommunityToolkit.Mvvm.ComponentModel;
|
|||
|
using CommunityToolkit.Mvvm.Input;
|
|||
|
using CtrEditor.ObjetosSim;
|
|||
|
using CtrEditor;
|
|||
|
using System.Collections.ObjectModel;
|
|||
|
using System.Windows;
|
|||
|
using System.Windows.Controls;
|
|||
|
using System.Collections;
|
|||
|
using CtrEditor.ObjetosSim.Extraccion_Datos;
|
|||
|
using Microsoft.Xaml.Behaviors;
|
|||
|
|
|||
|
|
|||
|
namespace CtrEditor.PopUps
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// Interaction logic for AssignImagesWindow.xaml
|
|||
|
/// </summary>
|
|||
|
public partial class AssignImagesWindow : Window
|
|||
|
{
|
|||
|
public AssignImagesWindow()
|
|||
|
{
|
|||
|
InitializeComponent();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public partial class AssignImagesViewModel : ObservableObject
|
|||
|
{
|
|||
|
private MainViewModel _mainViewModel;
|
|||
|
private Window _window;
|
|||
|
|
|||
|
[ObservableProperty]
|
|||
|
private ObservableCollection<osBase> objetosSimulables;
|
|||
|
|
|||
|
[ObservableProperty]
|
|||
|
private ObservableCollection<string> listaImagenes;
|
|||
|
|
|||
|
[ObservableProperty]
|
|||
|
private ObservableCollection<osBase> selectedObjetosSimulables;
|
|||
|
|
|||
|
[ObservableProperty]
|
|||
|
private ObservableCollection<string> selectedImagenes;
|
|||
|
|
|||
|
public AssignImagesViewModel() { }
|
|||
|
|
|||
|
public void Initialize(MainViewModel mainViewModel, Window window)
|
|||
|
{
|
|||
|
_mainViewModel = mainViewModel;
|
|||
|
_window = window;
|
|||
|
ObjetosSimulables = new ObservableCollection<osBase>(_mainViewModel.ObjetosSimulables.Where(
|
|||
|
o => o.Enable_On_All_Pages && ((o is osExtraccionTag ex && !ex.Cloned) || (o is osBuscarCoincidencias))));
|
|||
|
|
|||
|
ListaImagenes = _mainViewModel.ListaImagenes;
|
|||
|
SelectedObjetosSimulables = new ObservableCollection<osBase>();
|
|||
|
SelectedImagenes = new ObservableCollection<string>();
|
|||
|
}
|
|||
|
|
|||
|
[RelayCommand]
|
|||
|
private void AssignImages()
|
|||
|
{
|
|||
|
foreach (var objeto in SelectedObjetosSimulables)
|
|||
|
{
|
|||
|
objeto.ShowOnThisPagesList = new List<string>(SelectedImagenes);
|
|||
|
objeto.Show_On_This_Page = objeto.Show_On_This_Page;
|
|||
|
}
|
|||
|
|
|||
|
_window.Close();
|
|||
|
}
|
|||
|
|
|||
|
[RelayCommand]
|
|||
|
private void TBSelectAll()
|
|||
|
{
|
|||
|
SelectedObjetosSimulables.Clear();
|
|||
|
foreach (var obj in ObjetosSimulables)
|
|||
|
{
|
|||
|
SelectedObjetosSimulables.Add(obj);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
[RelayCommand]
|
|||
|
private void TBUnSelectAll()
|
|||
|
{
|
|||
|
SelectedObjetosSimulables.Clear();
|
|||
|
}
|
|||
|
|
|||
|
[RelayCommand]
|
|||
|
private void TBSelectAllIamges()
|
|||
|
{
|
|||
|
SelectedImagenes.Clear();
|
|||
|
foreach (var img in ListaImagenes)
|
|||
|
{
|
|||
|
SelectedImagenes.Add(img);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
[RelayCommand]
|
|||
|
private void TBUnSelectAllImages()
|
|||
|
{
|
|||
|
SelectedImagenes.Clear();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
public class SelectedItemsBehavior : Behavior<ListBox>
|
|||
|
{
|
|||
|
public IList SelectedItems
|
|||
|
{
|
|||
|
get { return (IList)GetValue(SelectedItemsProperty); }
|
|||
|
set { SetValue(SelectedItemsProperty, value); }
|
|||
|
}
|
|||
|
|
|||
|
public static readonly DependencyProperty SelectedItemsProperty =
|
|||
|
DependencyProperty.Register("SelectedItems", typeof(IList), typeof(SelectedItemsBehavior), new PropertyMetadata(null, OnSelectedItemsChanged));
|
|||
|
|
|||
|
protected override void OnAttached()
|
|||
|
{
|
|||
|
base.OnAttached();
|
|||
|
AssociatedObject.SelectionChanged += OnSelectionChanged;
|
|||
|
}
|
|||
|
|
|||
|
protected override void OnDetaching()
|
|||
|
{
|
|||
|
base.OnDetaching();
|
|||
|
AssociatedObject.SelectionChanged -= OnSelectionChanged;
|
|||
|
}
|
|||
|
|
|||
|
private static void OnSelectedItemsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
|
|||
|
{
|
|||
|
var behavior = d as SelectedItemsBehavior;
|
|||
|
behavior?.UpdateSelectedItems();
|
|||
|
}
|
|||
|
|
|||
|
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
|
|||
|
{
|
|||
|
if (SelectedItems != null)
|
|||
|
{
|
|||
|
foreach (var item in e.RemovedItems)
|
|||
|
{
|
|||
|
SelectedItems.Remove(item);
|
|||
|
}
|
|||
|
foreach (var item in e.AddedItems)
|
|||
|
{
|
|||
|
SelectedItems.Add(item);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void UpdateSelectedItems()
|
|||
|
{
|
|||
|
if (SelectedItems != null)
|
|||
|
{
|
|||
|
AssociatedObject.SelectionChanged -= OnSelectionChanged;
|
|||
|
AssociatedObject.SelectedItems.Clear();
|
|||
|
foreach (var item in SelectedItems)
|
|||
|
{
|
|||
|
AssociatedObject.SelectedItems.Add(item);
|
|||
|
}
|
|||
|
AssociatedObject.SelectionChanged += OnSelectionChanged;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|