97 lines
2.8 KiB
C#
97 lines
2.8 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.ComponentModel;
|
|||
|
using System.Linq;
|
|||
|
using System.Runtime.CompilerServices;
|
|||
|
using System.Text;
|
|||
|
using System.Threading.Tasks;
|
|||
|
using System.Windows.Controls;
|
|||
|
using System.Windows.Input;
|
|||
|
using Ookii.Dialogs.Wpf;
|
|||
|
using System.Windows.Input;
|
|||
|
|
|||
|
namespace CtrEditor
|
|||
|
{
|
|||
|
public class MainViewModel : INotifyPropertyChanged
|
|||
|
{
|
|||
|
private double _zoomFactor = 1.0;
|
|||
|
private string _directorioTrabajo;
|
|||
|
|
|||
|
|
|||
|
public MainViewModel()
|
|||
|
{
|
|||
|
OpenWorkDirectoryCommand = new RelayCommand(OpenWorkDirectory);
|
|||
|
LoadImageCommand = new RelayCommand(LoadImage);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
public string DirectorioTrabajo
|
|||
|
{
|
|||
|
get => _directorioTrabajo;
|
|||
|
set
|
|||
|
{
|
|||
|
_directorioTrabajo = value;
|
|||
|
OnPropertyChanged(nameof(DirectorioTrabajo)); // Notificar el cambio de propiedad
|
|||
|
EstadoPersistente.Instance.DirectorioTrabajo = value; // Actualizar el estado persistente
|
|||
|
EstadoPersistente.Instance.GuardarEstado(); // Guardar el estado actualizado
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public ICommand OpenWorkDirectoryCommand { get; }
|
|||
|
|
|||
|
private void OpenWorkDirectory()
|
|||
|
{
|
|||
|
var dialog = new VistaFolderBrowserDialog();
|
|||
|
if (dialog.ShowDialog() == true) // Mostrar el diálogo y comprobar si el resultado es positivo
|
|||
|
{
|
|||
|
DirectorioTrabajo = dialog.SelectedPath; // Actualizar la propiedad que también actualiza el estado persistente
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// Ejemplo de propiedad para gestionar el UserControl activo
|
|||
|
private UserControl _activeControl;
|
|||
|
public UserControl ActiveControl
|
|||
|
{
|
|||
|
get => _activeControl;
|
|||
|
set { _activeControl = value; OnPropertyChanged(); }
|
|||
|
}
|
|||
|
|
|||
|
// Comando para cargar una imagen
|
|||
|
public ICommand LoadImageCommand { get; private set; }
|
|||
|
|
|||
|
|
|||
|
private void LoadImage()
|
|||
|
{
|
|||
|
// Implementar lógica de carga de imagen
|
|||
|
}
|
|||
|
|
|||
|
public event PropertyChangedEventHandler PropertyChanged;
|
|||
|
protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
|
|||
|
{
|
|||
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
|||
|
}
|
|||
|
|
|||
|
public double ZoomFactor
|
|||
|
{
|
|||
|
get => _zoomFactor;
|
|||
|
set { _zoomFactor = value; OnPropertyChanged(); }
|
|||
|
}
|
|||
|
|
|||
|
private double _offsetX = 0;
|
|||
|
private double _offsetY = 0;
|
|||
|
public double OffsetX
|
|||
|
{
|
|||
|
get => _offsetX;
|
|||
|
set { _offsetX = value; OnPropertyChanged(); }
|
|||
|
}
|
|||
|
public double OffsetY
|
|||
|
{
|
|||
|
get => _offsetY;
|
|||
|
set { _offsetY = value; OnPropertyChanged(); }
|
|||
|
}
|
|||
|
|
|||
|
// Implementación de INotifyPropertyChanged...
|
|||
|
}
|
|||
|
|
|||
|
}
|