mirror of
https://github.com/LorisYounger/VPet.ModMaker.git
synced 2024-08-30 18:22:21 +00:00
95 lines
2.9 KiB
C#
95 lines
2.9 KiB
C#
using HKW.HKWViewModels.SimpleObservable;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows;
|
|
using VPet.Plugin.ModMaker.Models;
|
|
using VPet.Plugin.ModMaker.Views.ModEdit.ClickTextEdit;
|
|
|
|
namespace VPet.Plugin.ModMaker.ViewModels.ModEdit.ClickTextEdit;
|
|
|
|
public class ClickTextPageVM
|
|
{
|
|
#region Value
|
|
public ObservableValue<ObservableCollection<ClickTextModel>> ShowClickTexts { get; } = new();
|
|
public ObservableCollection<ClickTextModel> ClickTexts { get; } =
|
|
new(ModInfoModel.Current.ClickTexts);
|
|
public ObservableValue<string> FilterClickText { get; } = new();
|
|
#endregion
|
|
#region Command
|
|
public ObservableCommand AddClickTextCommand { get; } = new();
|
|
public ObservableCommand<ClickTextModel> EditClickTextCommand { get; } = new();
|
|
public ObservableCommand<ClickTextModel> RemoveClickTextCommand { get; } = new();
|
|
#endregion
|
|
|
|
public ClickTextPageVM()
|
|
{
|
|
ShowClickTexts.Value = ClickTexts;
|
|
FilterClickText.ValueChanged += FilterClickText_ValueChanged;
|
|
AddClickTextCommand.ExecuteAction = AddClickText;
|
|
EditClickTextCommand.ExecuteAction = EditClickText;
|
|
RemoveClickTextCommand.ExecuteAction = RemoveClickText;
|
|
}
|
|
|
|
private void FilterClickText_ValueChanged(string value)
|
|
{
|
|
if (string.IsNullOrEmpty(value))
|
|
{
|
|
ShowClickTexts.Value = ClickTexts;
|
|
}
|
|
else
|
|
{
|
|
ShowClickTexts.Value = new(
|
|
ClickTexts.Where(f => f.CurrentI18nData.Value.Text.Value.Contains(value))
|
|
);
|
|
}
|
|
}
|
|
|
|
private void AddClickText()
|
|
{
|
|
var window = new ClickTextEditWindow();
|
|
var vm = window.ViewModel;
|
|
window.ShowDialog();
|
|
if (window.IsCancel)
|
|
return;
|
|
ClickTexts.Add(vm.ClickText.Value);
|
|
}
|
|
|
|
public void EditClickText(ClickTextModel clickText)
|
|
{
|
|
var window = new ClickTextEditWindow();
|
|
var vm = window.ViewModel;
|
|
var newLowTest = vm.ClickText.Value = new(clickText);
|
|
window.ShowDialog();
|
|
if (window.IsCancel)
|
|
return;
|
|
if (ShowClickTexts.Value.Count == ClickTexts.Count)
|
|
{
|
|
ClickTexts[ClickTexts.IndexOf(clickText)] = newLowTest;
|
|
}
|
|
else
|
|
{
|
|
ClickTexts[ClickTexts.IndexOf(clickText)] = newLowTest;
|
|
ShowClickTexts.Value[ShowClickTexts.Value.IndexOf(clickText)] = newLowTest;
|
|
}
|
|
}
|
|
|
|
private void RemoveClickText(ClickTextModel clickText)
|
|
{
|
|
if (MessageBox.Show("确定删除吗", "", MessageBoxButton.YesNo) is MessageBoxResult.No)
|
|
return;
|
|
if (ShowClickTexts.Value.Count == ClickTexts.Count)
|
|
{
|
|
ClickTexts.Remove(clickText);
|
|
}
|
|
else
|
|
{
|
|
ShowClickTexts.Value.Remove(clickText);
|
|
ClickTexts.Remove(clickText);
|
|
}
|
|
}
|
|
}
|