mirror of
https://github.com/LorisYounger/VPet.ModMaker.git
synced 2024-08-30 18:22:21 +00:00
AnimeEdit 实装 Muisc
This commit is contained in:
parent
395e054f13
commit
bdf2d130dd
@ -21,6 +21,8 @@ public class AnimeTypeModel
|
||||
public static ObservableCollection<GameSave.ModeType> ModeTypes { get; } =
|
||||
new(Enum.GetValues(typeof(GameSave.ModeType)).Cast<GameSave.ModeType>());
|
||||
|
||||
public ObservableValue<string> Id { get; } = new();
|
||||
|
||||
public ObservableValue<string> Name { get; } = new();
|
||||
public ObservableValue<GraphInfo.GraphType> GraphType { get; } = new();
|
||||
|
||||
@ -29,10 +31,18 @@ public class AnimeTypeModel
|
||||
public ObservableCollection<AnimeModel> PoorConditionAnimes { get; } = new();
|
||||
public ObservableCollection<AnimeModel> IllAnimes { get; } = new();
|
||||
|
||||
public AnimeTypeModel() { }
|
||||
public AnimeTypeModel()
|
||||
{
|
||||
Name.ValueChanged += (_, _) =>
|
||||
{
|
||||
Id.Value = $"{GraphType.Value}_{Name.Value}";
|
||||
};
|
||||
}
|
||||
|
||||
public AnimeTypeModel(AnimeTypeModel model)
|
||||
: this()
|
||||
{
|
||||
Id.Value = model.Id.Value;
|
||||
Name.Value = model.Name.Value;
|
||||
GraphType.Value = model.GraphType.Value;
|
||||
foreach (var anime in model.HappyAnimes)
|
||||
@ -60,6 +70,11 @@ public class AnimeTypeModel
|
||||
|
||||
public AnimeTypeModel(GraphInfo.GraphType graphType, string path)
|
||||
{
|
||||
Name.Value = Path.GetFileName(path);
|
||||
if (graphType is GraphInfo.GraphType.Common)
|
||||
Id.Value = $"{nameof(GraphInfo.GraphType.Common)}_{Name.Value}";
|
||||
else
|
||||
Id.Value = graphType.ToString();
|
||||
GraphType.Value = graphType;
|
||||
if (
|
||||
graphType
|
||||
@ -81,6 +96,7 @@ public class AnimeTypeModel
|
||||
or GraphInfo.GraphType.Raised_Static
|
||||
or GraphInfo.GraphType.StateONE
|
||||
or GraphInfo.GraphType.StateTWO
|
||||
or GraphInfo.GraphType.Common
|
||||
)
|
||||
LoadMultiType(path);
|
||||
else
|
||||
@ -177,13 +193,14 @@ public class AnimeTypeModel
|
||||
AddAnime(IllAnimes, dir, type);
|
||||
}
|
||||
}
|
||||
else
|
||||
else if (Enum.TryParse<GameSave.ModeType>(dirName, true, out var mode))
|
||||
{
|
||||
// 判断 Happy/A 型文件夹
|
||||
var mode = Enum.Parse(typeof(GameSave.ModeType), dirName, true);
|
||||
foreach (var typePath in Directory.EnumerateDirectories(dir))
|
||||
{
|
||||
var type = GetAnimatType(Path.GetFileName(typePath)[0]);
|
||||
var type = GetAnimatType(
|
||||
Path.GetFileName(typePath).Split(Utils.Separator).First()[0]
|
||||
);
|
||||
if (mode is GameSave.ModeType.Happy)
|
||||
{
|
||||
AddAnime(HappyAnimes, typePath, type);
|
||||
@ -202,6 +219,36 @@ public class AnimeTypeModel
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var type = GetAnimatType(dirName[0]);
|
||||
// 判断 A/Happy 文件夹
|
||||
foreach (var modePath in Directory.EnumerateDirectories(dir))
|
||||
{
|
||||
mode = (GameSave.ModeType)
|
||||
Enum.Parse(
|
||||
typeof(GameSave.ModeType),
|
||||
Path.GetFileName(modePath).Split(Utils.Separator).First(),
|
||||
true
|
||||
);
|
||||
if (mode is GameSave.ModeType.Happy)
|
||||
{
|
||||
AddAnime(HappyAnimes, modePath, type);
|
||||
}
|
||||
else if (mode is GameSave.ModeType.Nomal)
|
||||
{
|
||||
AddAnime(NomalAnimes, modePath, type);
|
||||
}
|
||||
else if (mode is GameSave.ModeType.PoorCondition)
|
||||
{
|
||||
AddAnime(PoorConditionAnimes, modePath, type);
|
||||
}
|
||||
else if (mode is GameSave.ModeType.Ill)
|
||||
{
|
||||
AddAnime(IllAnimes, modePath, type);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -254,7 +301,7 @@ public class AnimeTypeModel
|
||||
or GraphInfo.GraphType.Touch_Body
|
||||
or GraphInfo.GraphType.Sleep
|
||||
)
|
||||
SaveWithModeType(path, this);
|
||||
SaveMultiType(path, this);
|
||||
else if (
|
||||
GraphType.Value
|
||||
is GraphInfo.GraphType.Switch_Up
|
||||
@ -271,13 +318,22 @@ public class AnimeTypeModel
|
||||
SaveRaise(path, this);
|
||||
else if (GraphType.Value is GraphInfo.GraphType.StateONE or GraphInfo.GraphType.StateTWO)
|
||||
SaveState(path, this);
|
||||
else if (GraphType.Value is GraphInfo.GraphType.Common)
|
||||
SaveCommon(path, this);
|
||||
}
|
||||
|
||||
void SaveCommon(string path, AnimeTypeModel animeTypeModel)
|
||||
{
|
||||
var animePath = Path.Combine(path, animeTypeModel.Name.Value);
|
||||
Directory.CreateDirectory(animePath);
|
||||
SaveWithModeType(animePath, animeTypeModel);
|
||||
}
|
||||
|
||||
void SaveState(string path, AnimeTypeModel animeTypeModel)
|
||||
{
|
||||
var animePath = Path.Combine(path, "State");
|
||||
Directory.CreateDirectory(animePath);
|
||||
SaveWithModeType(animePath, animeTypeModel);
|
||||
SaveMultiType(animePath, animeTypeModel);
|
||||
}
|
||||
|
||||
void SaveRaise(string path, AnimeTypeModel animeTypeModel)
|
||||
@ -287,7 +343,7 @@ public class AnimeTypeModel
|
||||
if (animeTypeModel.GraphType.Value is GraphInfo.GraphType.Raised_Dynamic)
|
||||
SaveDefault(animePath, animeTypeModel);
|
||||
else if (animeTypeModel.GraphType.Value is GraphInfo.GraphType.Raised_Static)
|
||||
SaveWithModeType(animePath, animeTypeModel);
|
||||
SaveMultiType(animePath, animeTypeModel);
|
||||
}
|
||||
|
||||
void SaveSwitch(string path, AnimeTypeModel animeTypeModel)
|
||||
@ -298,6 +354,30 @@ public class AnimeTypeModel
|
||||
SaveWithAnimeType(Path.Combine(animePath, switchName), animeTypeModel);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 保存成默认样式
|
||||
/// </summary>
|
||||
/// <param name="path"></param>
|
||||
/// <param name="animeTypeModel"></param>
|
||||
static void SaveDefault(string path, AnimeTypeModel animeTypeModel)
|
||||
{
|
||||
var animePath = Path.Combine(path, animeTypeModel.GraphType.ToString());
|
||||
Directory.CreateDirectory(animePath);
|
||||
SaveWithAnimeType(animePath, animeTypeModel);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 保存成多类型样式
|
||||
/// </summary>
|
||||
/// <param name="path"></param>
|
||||
/// <param name="animeTypeModel"></param>
|
||||
static void SaveMultiType(string path, AnimeTypeModel animeTypeModel)
|
||||
{
|
||||
var animePath = Path.Combine(path, animeTypeModel.GraphType.ToString());
|
||||
Directory.CreateDirectory(animePath);
|
||||
SaveWithModeType(animePath, animeTypeModel);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 保存为 ModeType 划分的样式
|
||||
/// <para><![CDATA[
|
||||
@ -313,28 +393,26 @@ public class AnimeTypeModel
|
||||
/// </summary>
|
||||
/// <param name="path"></param>
|
||||
/// <param name="animeTypeModel"></param>
|
||||
void SaveWithModeType(string path, AnimeTypeModel animeTypeModel)
|
||||
static void SaveWithModeType(string path, AnimeTypeModel animeTypeModel)
|
||||
{
|
||||
var animePath = Path.Combine(path, animeTypeModel.GraphType.ToString());
|
||||
Directory.CreateDirectory(animePath);
|
||||
if (animeTypeModel.HappyAnimes.Count > 0)
|
||||
{
|
||||
var modePath = Path.Combine(animePath, nameof(GameSave.ModeType.Happy));
|
||||
var modePath = Path.Combine(path, nameof(GameSave.ModeType.Happy));
|
||||
SaveAnimes(modePath, animeTypeModel.HappyAnimes);
|
||||
}
|
||||
if (animeTypeModel.NomalAnimes.Count > 0)
|
||||
{
|
||||
var modePath = Path.Combine(animePath, nameof(GameSave.ModeType.Nomal));
|
||||
var modePath = Path.Combine(path, nameof(GameSave.ModeType.Nomal));
|
||||
SaveAnimes(modePath, animeTypeModel.NomalAnimes);
|
||||
}
|
||||
if (animeTypeModel.PoorConditionAnimes.Count > 0)
|
||||
{
|
||||
var modePath = Path.Combine(animePath, nameof(GameSave.ModeType.PoorCondition));
|
||||
var modePath = Path.Combine(path, nameof(GameSave.ModeType.PoorCondition));
|
||||
SaveAnimes(modePath, animeTypeModel.PoorConditionAnimes);
|
||||
}
|
||||
if (animeTypeModel.IllAnimes.Count > 0)
|
||||
{
|
||||
var modePath = Path.Combine(animePath, nameof(GameSave.ModeType.Ill));
|
||||
var modePath = Path.Combine(path, nameof(GameSave.ModeType.Ill));
|
||||
SaveAnimes(modePath, animeTypeModel.IllAnimes);
|
||||
}
|
||||
|
||||
@ -371,18 +449,6 @@ public class AnimeTypeModel
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 保存成默认样式
|
||||
/// </summary>
|
||||
/// <param name="path"></param>
|
||||
/// <param name="animeTypeModel"></param>
|
||||
static void SaveDefault(string path, AnimeTypeModel animeTypeModel)
|
||||
{
|
||||
var animePath = Path.Combine(path, animeTypeModel.GraphType.ToString());
|
||||
Directory.CreateDirectory(animePath);
|
||||
SaveWithAnimeType(animePath, animeTypeModel);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 保存为 AnimeType 划分的样式
|
||||
/// <para><![CDATA[
|
||||
|
@ -92,9 +92,11 @@ public class ModInfoModel : I18nModel<I18nModInfoModel>
|
||||
foreach (var animeDir in Directory.EnumerateDirectories(path))
|
||||
{
|
||||
var dirName = Path.GetFileName(animeDir);
|
||||
Enum.TryParse<GraphInfo.GraphType>(dirName, true, out var animeType);
|
||||
if (AnimeTypeModel.Create(animeType, animeDir) is AnimeTypeModel model)
|
||||
petModel.Animes.Add(model);
|
||||
if (Enum.TryParse<GraphInfo.GraphType>(dirName, true, out var animeType))
|
||||
{
|
||||
if (AnimeTypeModel.Create(animeType, animeDir) is AnimeTypeModel model)
|
||||
petModel.Animes.Add(model);
|
||||
}
|
||||
else if (dirName.Equals("Switch", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
foreach (var dir in Directory.EnumerateDirectories(animeDir))
|
||||
@ -143,6 +145,14 @@ public class ModInfoModel : I18nModel<I18nModInfoModel>
|
||||
petModel.Animes.Add(switchModel);
|
||||
}
|
||||
}
|
||||
else if (dirName.Equals("Music", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
if (
|
||||
AnimeTypeModel.Create(GraphInfo.GraphType.Common, animeDir)
|
||||
is AnimeTypeModel model1
|
||||
)
|
||||
petModel.Animes.Add(model1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -67,10 +67,11 @@ public class AnimeEditWindowVM
|
||||
is GraphInfo.GraphType.Touch_Body
|
||||
or GraphInfo.GraphType.Touch_Head
|
||||
or GraphInfo.GraphType.Sleep
|
||||
or GraphInfo.GraphType.Common
|
||||
)
|
||||
HasMultiType.Value = true;
|
||||
|
||||
if (model.GraphType.Value is GraphInfo.GraphType.Idel)
|
||||
if (model.GraphType.Value is GraphInfo.GraphType.Idel or GraphInfo.GraphType.Common)
|
||||
HasAnimeName.Value = true;
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,7 @@ public class AnimePageVM
|
||||
|
||||
public ObservableCollection<PetModel> Pets => ModInfoModel.Current.Pets;
|
||||
public ObservableValue<PetModel> CurrentPet { get; } = new(new());
|
||||
//public ObservableValue<string> Filter { get; } = new();
|
||||
public ObservableValue<string> Search { get; } = new();
|
||||
#endregion
|
||||
#region Command
|
||||
public ObservableCommand AddCommand { get; } = new();
|
||||
@ -32,7 +32,7 @@ public class AnimePageVM
|
||||
{
|
||||
ShowAnimes.Value = Animes;
|
||||
CurrentPet.ValueChanged += CurrentPet_ValueChanged;
|
||||
//Filter.ValueChanged += Filter_ValueChanged;
|
||||
Search.ValueChanged += Search_ValueChanged;
|
||||
|
||||
AddCommand.ExecuteEvent += Add;
|
||||
EditCommand.ExecuteEvent += Edit;
|
||||
@ -44,18 +44,18 @@ public class AnimePageVM
|
||||
ShowAnimes.Value = newValue.Animes;
|
||||
}
|
||||
|
||||
private void Filter_ValueChanged(string oldValue, string newValue)
|
||||
private void Search_ValueChanged(string oldValue, string newValue)
|
||||
{
|
||||
//if (string.IsNullOrWhiteSpace(newValue))
|
||||
//{
|
||||
// ShowAnimes.Value = Animes;
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// ShowAnimes.Value = new(
|
||||
// Animes.Where(m => m.Id.Value.Contains(newValue, StringComparison.OrdinalIgnoreCase))
|
||||
// );
|
||||
//}
|
||||
if (string.IsNullOrWhiteSpace(newValue))
|
||||
{
|
||||
ShowAnimes.Value = Animes;
|
||||
}
|
||||
else
|
||||
{
|
||||
ShowAnimes.Value = new(
|
||||
Animes.Where(m => m.Id.Value.Contains(newValue, StringComparison.OrdinalIgnoreCase))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public void Close() { }
|
||||
|
@ -17,7 +17,7 @@ public class ClickTextPageVM
|
||||
#region Value
|
||||
public ObservableValue<ObservableCollection<ClickTextModel>> ShowClickTexts { get; } = new();
|
||||
public ObservableCollection<ClickTextModel> ClickTexts => ModInfoModel.Current.ClickTexts;
|
||||
public ObservableValue<string> Filter { get; } = new();
|
||||
public ObservableValue<string> Search { get; } = new();
|
||||
#endregion
|
||||
#region Command
|
||||
public ObservableCommand AddCommand { get; } = new();
|
||||
@ -28,13 +28,13 @@ public class ClickTextPageVM
|
||||
public ClickTextPageVM()
|
||||
{
|
||||
ShowClickTexts.Value = ClickTexts;
|
||||
Filter.ValueChanged += Filter_ValueChanged;
|
||||
Search.ValueChanged += Search_ValueChanged;
|
||||
AddCommand.ExecuteEvent += Add;
|
||||
EditCommand.ExecuteEvent += Edit;
|
||||
RemoveCommand.ExecuteEvent += Remove;
|
||||
}
|
||||
|
||||
private void Filter_ValueChanged(string oldValue, string newValue)
|
||||
private void Search_ValueChanged(string oldValue, string newValue)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(newValue))
|
||||
{
|
||||
|
@ -19,7 +19,7 @@ public class FoodPageVM
|
||||
#region Value
|
||||
public ObservableValue<ObservableCollection<FoodModel>> ShowFoods { get; } = new();
|
||||
public ObservableCollection<FoodModel> Foods => ModInfoModel.Current.Foods;
|
||||
public ObservableValue<string> Filter { get; } = new();
|
||||
public ObservableValue<string> Search { get; } = new();
|
||||
#endregion
|
||||
#region Command
|
||||
public ObservableCommand AddCommand { get; } = new();
|
||||
@ -29,14 +29,14 @@ public class FoodPageVM
|
||||
public FoodPageVM()
|
||||
{
|
||||
ShowFoods.Value = Foods;
|
||||
Filter.ValueChanged += Filter_ValueChanged;
|
||||
Search.ValueChanged += Search_ValueChanged;
|
||||
|
||||
AddCommand.ExecuteEvent += Add;
|
||||
EditCommand.ExecuteEvent += Edit;
|
||||
RemoveCommand.ExecuteEvent += Remove;
|
||||
}
|
||||
|
||||
private void Filter_ValueChanged(string oldValue, string newValue)
|
||||
private void Search_ValueChanged(string oldValue, string newValue)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(newValue))
|
||||
{
|
||||
|
@ -20,7 +20,7 @@ public class LowTextPageVM
|
||||
#region Value
|
||||
public ObservableValue<ObservableCollection<LowTextModel>> ShowLowTexts { get; } = new();
|
||||
public ObservableCollection<LowTextModel> LowTexts => ModInfoModel.Current.LowTexts;
|
||||
public ObservableValue<string> Filter { get; } = new();
|
||||
public ObservableValue<string> Search { get; } = new();
|
||||
#endregion
|
||||
#region Command
|
||||
public ObservableCommand AddCommand { get; } = new();
|
||||
@ -31,13 +31,13 @@ public class LowTextPageVM
|
||||
public LowTextPageVM()
|
||||
{
|
||||
ShowLowTexts.Value = LowTexts;
|
||||
Filter.ValueChanged += Filter_ValueChanged;
|
||||
Search.ValueChanged += Search_ValueChanged;
|
||||
AddCommand.ExecuteEvent += Add;
|
||||
EditCommand.ExecuteEvent += Edit;
|
||||
RemoveCommand.ExecuteEvent += Remove;
|
||||
}
|
||||
|
||||
private void Filter_ValueChanged(string oldValue, string newValue)
|
||||
private void Search_ValueChanged(string oldValue, string newValue)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(newValue))
|
||||
{
|
||||
|
@ -20,7 +20,7 @@ public class MovePageVM
|
||||
|
||||
public ObservableCollection<PetModel> Pets => ModInfoModel.Current.Pets;
|
||||
public ObservableValue<PetModel> CurrentPet { get; } = new(new());
|
||||
public ObservableValue<string> Filter { get; } = new();
|
||||
public ObservableValue<string> Search { get; } = new();
|
||||
#endregion
|
||||
#region Command
|
||||
public ObservableCommand AddCommand { get; } = new();
|
||||
@ -31,7 +31,7 @@ public class MovePageVM
|
||||
{
|
||||
ShowMoves.Value = Moves;
|
||||
CurrentPet.ValueChanged += CurrentPet_ValueChanged;
|
||||
Filter.ValueChanged += Filter_ValueChanged;
|
||||
Search.ValueChanged += Search_ValueChanged;
|
||||
|
||||
AddCommand.ExecuteEvent += Add;
|
||||
EditCommand.ExecuteEvent += Edit;
|
||||
@ -43,7 +43,7 @@ public class MovePageVM
|
||||
ShowMoves.Value = newValue.Moves;
|
||||
}
|
||||
|
||||
private void Filter_ValueChanged(string oldValue, string newValue)
|
||||
private void Search_ValueChanged(string oldValue, string newValue)
|
||||
{
|
||||
//if (string.IsNullOrWhiteSpace(newValue))
|
||||
//{
|
||||
|
@ -17,7 +17,7 @@ public class PetPageVM
|
||||
#region Value
|
||||
public ObservableValue<ObservableCollection<PetModel>> ShowPets { get; } = new();
|
||||
public ObservableCollection<PetModel> Pets => ModInfoModel.Current.Pets;
|
||||
public ObservableValue<string> Filter { get; } = new();
|
||||
public ObservableValue<string> Search { get; } = new();
|
||||
#endregion
|
||||
#region Command
|
||||
public ObservableCommand AddCommand { get; } = new();
|
||||
@ -27,14 +27,14 @@ public class PetPageVM
|
||||
public PetPageVM()
|
||||
{
|
||||
ShowPets.Value = Pets;
|
||||
Filter.ValueChanged += Filter_ValueChanged;
|
||||
Search.ValueChanged += Search_ValueChanged;
|
||||
|
||||
AddCommand.ExecuteEvent += Add;
|
||||
EditCommand.ExecuteEvent += Edit;
|
||||
RemoveCommand.ExecuteEvent += Remove;
|
||||
}
|
||||
|
||||
private void Filter_ValueChanged(string oldValue, string newValue)
|
||||
private void Search_ValueChanged(string oldValue, string newValue)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(newValue))
|
||||
{
|
||||
|
@ -17,7 +17,7 @@ public class SelectTextPageVM
|
||||
#region Value
|
||||
public ObservableValue<ObservableCollection<SelectTextModel>> ShowSelectTexts { get; } = new();
|
||||
public ObservableCollection<SelectTextModel> SelectTexts => ModInfoModel.Current.SelectTexts;
|
||||
public ObservableValue<string> Filter { get; } = new();
|
||||
public ObservableValue<string> Search { get; } = new();
|
||||
#endregion
|
||||
#region Command
|
||||
public ObservableCommand AddCommand { get; } = new();
|
||||
@ -28,13 +28,13 @@ public class SelectTextPageVM
|
||||
public SelectTextPageVM()
|
||||
{
|
||||
ShowSelectTexts.Value = SelectTexts;
|
||||
Filter.ValueChanged += Filter_ValueChanged;
|
||||
Search.ValueChanged += Search_ValueChanged;
|
||||
AddCommand.ExecuteEvent += Add;
|
||||
EditCommand.ExecuteEvent += Edit;
|
||||
RemoveCommand.ExecuteEvent += Remove;
|
||||
}
|
||||
|
||||
private void Filter_ValueChanged(string oldValue, string newValue)
|
||||
private void Search_ValueChanged(string oldValue, string newValue)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(newValue))
|
||||
{
|
||||
|
@ -20,7 +20,7 @@ public class WorkPageVM
|
||||
|
||||
public ObservableCollection<PetModel> Pets => ModInfoModel.Current.Pets;
|
||||
public ObservableValue<PetModel> CurrentPet { get; } = new(new());
|
||||
public ObservableValue<string> Filter { get; } = new();
|
||||
public ObservableValue<string> Search { get; } = new();
|
||||
#endregion
|
||||
#region Command
|
||||
public ObservableCommand AddCommand { get; } = new();
|
||||
@ -31,7 +31,7 @@ public class WorkPageVM
|
||||
{
|
||||
ShowWorks.Value = Works;
|
||||
CurrentPet.ValueChanged += CurrentPet_ValueChanged;
|
||||
Filter.ValueChanged += Filter_ValueChanged;
|
||||
Search.ValueChanged += Search_ValueChanged;
|
||||
|
||||
AddCommand.ExecuteEvent += Add;
|
||||
EditCommand.ExecuteEvent += Edit;
|
||||
@ -43,7 +43,7 @@ public class WorkPageVM
|
||||
ShowWorks.Value = newValue.Works;
|
||||
}
|
||||
|
||||
private void Filter_ValueChanged(string oldValue, string newValue)
|
||||
private void Search_ValueChanged(string oldValue, string newValue)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(newValue))
|
||||
{
|
||||
|
@ -24,7 +24,7 @@ public class ModMakerWindowVM
|
||||
|
||||
public ModEditWindow ModEditWindow { get; private set; }
|
||||
|
||||
public ObservableValue<string> HistoriesFilterText { get; } = new();
|
||||
public ObservableValue<string> HistoriesSearchText { get; } = new();
|
||||
|
||||
public ObservableCollection<ModInfoModel> Mods { get; } = new();
|
||||
public ObservableValue<ObservableCollection<ModMakerHistory>> ShowHistories { get; } = new();
|
||||
@ -45,7 +45,7 @@ public class ModMakerWindowVM
|
||||
CreateNewModCommand.ExecuteEvent += CreateNewMod;
|
||||
LoadModFromFileCommand.ExecuteEvent += LoadModFromFile;
|
||||
ClearHistoriesCommand.ExecuteEvent += ClearHistories;
|
||||
HistoriesFilterText.ValueChanged += ModFilterText_ValueChanged;
|
||||
HistoriesSearchText.ValueChanged += ModSearchText_ValueChanged;
|
||||
}
|
||||
|
||||
private void LoadHistories()
|
||||
@ -103,7 +103,7 @@ public class ModMakerWindowVM
|
||||
}
|
||||
}
|
||||
|
||||
private void ModFilterText_ValueChanged(string oldValue, string newValue)
|
||||
private void ModSearchText_ValueChanged(string oldValue, string newValue)
|
||||
{
|
||||
if (string.IsNullOrEmpty(newValue))
|
||||
ShowHistories.Value = Histories;
|
||||
|
@ -52,7 +52,7 @@
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBox pu:TextBoxHelper.Watermark="动画Id" Text="{Binding Id.Value}" />
|
||||
<TextBox pu:TextBoxHelper.Watermark="动画Id" Text="{Binding Id.Value, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<TextBlock Grid.Column="1" Margin="10,0,0,0">
|
||||
<TextBlock.Text>
|
||||
<MultiBinding Converter="{StaticResource StringFormatConverter}" ConverterParameter="{}({0})">
|
||||
@ -175,19 +175,15 @@
|
||||
<!--<Label Content="{ll:Str 动画Id}" />
|
||||
<TextBox Grid.Column="1" />-->
|
||||
<Label Content="{ll:Str 动画类型}" />
|
||||
<TextBlock
|
||||
Grid.Column="1"
|
||||
IsEnabled="True"
|
||||
Text="{Binding Anime.Value.GraphType.Value}" />
|
||||
<TextBlock Grid.Column="1" Text="{Binding Anime.Value.GraphType.Value}" />
|
||||
<Label
|
||||
Grid.Row="1"
|
||||
Content="{ll:Str 动画名称}"
|
||||
Visibility="{Binding HasAnimeName.Value, Converter={StaticResource FalseToHiddenConverter}}" />
|
||||
<TextBlock
|
||||
<TextBox
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
IsEnabled="True"
|
||||
Text="{Binding Anime.Value.GraphType.Value}"
|
||||
Text="{Binding Anime.Value.Name.Value, UpdateSourceTrigger=PropertyChanged}"
|
||||
Visibility="{Binding HasAnimeName.Value, Converter={StaticResource FalseToHiddenConverter}}" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
@ -25,18 +25,18 @@
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<!--<TextBox pu:TextBoxHelper.Watermark="{ll:Str 搜索Id}" Text="{Binding Filter.Value, UpdateSourceTrigger=PropertyChanged}">
|
||||
<TextBox.Style>
|
||||
<Style BasedOn="{StaticResource {x:Type TextBox}}" TargetType="TextBox">
|
||||
<Setter Property="IsEnabled" Value="True" />
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedItem, ElementName=ComboBox_Pet}" Value="{x:Null}">
|
||||
<Setter Property="IsEnabled" Value="False" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</TextBox.Style>
|
||||
</TextBox>-->
|
||||
<TextBox pu:TextBoxHelper.Watermark="{ll:Str 搜索Id}" Text="{Binding Search.Value, UpdateSourceTrigger=PropertyChanged}">
|
||||
<TextBox.Style>
|
||||
<Style BasedOn="{StaticResource {x:Type TextBox}}" TargetType="TextBox">
|
||||
<Setter Property="IsEnabled" Value="True" />
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding SelectedItem, ElementName=ComboBox_Pet}" Value="{x:Null}">
|
||||
<Setter Property="IsEnabled" Value="False" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</TextBox.Style>
|
||||
</TextBox>
|
||||
<ComboBox
|
||||
x:Name="ComboBox_Pet"
|
||||
Grid.Column="1"
|
||||
@ -83,10 +83,10 @@
|
||||
</DataGrid.RowStyle>
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn
|
||||
Binding="{Binding GraphType.Value}"
|
||||
Binding="{Binding Id.Value}"
|
||||
CanUserSort="True"
|
||||
IsReadOnly="True"
|
||||
SortMemberPath="GraphType.Value">
|
||||
SortMemberPath="Id.Value">
|
||||
<DataGridTextColumn.Header>
|
||||
<TextBlock Text="{ll:Str 动画类型}" />
|
||||
</DataGridTextColumn.Header>
|
||||
|
@ -20,7 +20,7 @@
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<TextBox pu:TextBoxHelper.Watermark="{ll:Str 搜索Id}" Text="{Binding Filter.Value, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<TextBox pu:TextBoxHelper.Watermark="{ll:Str 搜索Id}" Text="{Binding Search.Value, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<DataGrid
|
||||
Grid.Row="1"
|
||||
d:ItemsSource="{d:SampleData ItemCount=5}"
|
||||
|
@ -20,7 +20,7 @@
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<TextBox pu:TextBoxHelper.Watermark="{ll:Str 搜索Id}" Text="{Binding Filter.Value, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<TextBox pu:TextBoxHelper.Watermark="{ll:Str 搜索Id}" Text="{Binding Search.Value, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<DataGrid
|
||||
Grid.Row="1"
|
||||
d:ItemsSource="{d:SampleData ItemCount=5}"
|
||||
|
@ -20,7 +20,7 @@
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<TextBox pu:TextBoxHelper.Watermark="{ll:Str 搜索Id}" Text="{Binding Filter.Value, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<TextBox pu:TextBoxHelper.Watermark="{ll:Str 搜索Id}" Text="{Binding Search.Value, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<DataGrid
|
||||
x:Name="DataGrid_LowText"
|
||||
Grid.Row="1"
|
||||
|
@ -26,7 +26,7 @@
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<!--<TextBox pu:TextBoxHelper.Watermark="{ll:Str 搜索Id}" Text="{Binding Filter.Value, UpdateSourceTrigger=PropertyChanged}">
|
||||
<!--<TextBox pu:TextBoxHelper.Watermark="{ll:Str 搜索Id}" Text="{Binding Search.Value, UpdateSourceTrigger=PropertyChanged}">
|
||||
<TextBox.Style>
|
||||
<Style BasedOn="{StaticResource {x:Type TextBox}}" TargetType="TextBox">
|
||||
<Setter Property="IsEnabled" Value="True" />
|
||||
|
@ -20,7 +20,7 @@
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<TextBox pu:TextBoxHelper.Watermark="{ll:Str 搜索Id}" Text="{Binding Filter.Value, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<TextBox pu:TextBoxHelper.Watermark="{ll:Str 搜索Id}" Text="{Binding Search.Value, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<DataGrid
|
||||
Grid.Row="1"
|
||||
d:ItemsSource="{d:SampleData ItemCount=5}"
|
||||
|
@ -20,7 +20,7 @@
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<TextBox pu:TextBoxHelper.Watermark="{ll:Str 搜索Id}" Text="{Binding Filter.Value, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<TextBox pu:TextBoxHelper.Watermark="{ll:Str 搜索Id}" Text="{Binding Search.Value, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<DataGrid
|
||||
Grid.Row="1"
|
||||
d:ItemsSource="{d:SampleData ItemCount=5}"
|
||||
|
@ -25,7 +25,7 @@
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBox pu:TextBoxHelper.Watermark="{ll:Str 搜索Id}" Text="{Binding Filter.Value, UpdateSourceTrigger=PropertyChanged}">
|
||||
<TextBox pu:TextBoxHelper.Watermark="{ll:Str 搜索Id}" Text="{Binding Search.Value, UpdateSourceTrigger=PropertyChanged}">
|
||||
<TextBox.Style>
|
||||
<Style BasedOn="{StaticResource {x:Type TextBox}}" TargetType="TextBox">
|
||||
<Setter Property="IsEnabled" Value="True" />
|
||||
|
@ -34,7 +34,7 @@
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBox pu:TextBoxHelper.Watermark="{ll:Str 最近的内容}" Text="{Binding HistoriesFilterText.Value}" />
|
||||
<TextBox pu:TextBoxHelper.Watermark="{ll:Str 最近的内容}" Text="{Binding HistoriesSearchText.Value}" />
|
||||
<Button
|
||||
Grid.Column="1"
|
||||
Command="{Binding ClearHistoriesCommand}"
|
||||
|
Loading…
Reference in New Issue
Block a user