BaseDataWindow: Fix Modifier creation
This commit is contained in:
@ -462,6 +462,10 @@ namespace Elwig.Windows {
|
|||||||
InputTextChanged((TextBox)sender, Validator.CheckInteger);
|
InputTextChanged((TextBox)sender, Validator.CheckInteger);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void DecimalInput_TextChanged(object sender, RoutedEventArgs evt) {
|
||||||
|
InputTextChanged((TextBox)sender, Validator.CheckDecimal);
|
||||||
|
}
|
||||||
|
|
||||||
protected void PartialDateInput_TextChanged(object sender, RoutedEventArgs evt) {
|
protected void PartialDateInput_TextChanged(object sender, RoutedEventArgs evt) {
|
||||||
InputTextChanged((TextBox)sender, Validator.CheckPartialDate);
|
InputTextChanged((TextBox)sender, Validator.CheckPartialDate);
|
||||||
}
|
}
|
||||||
|
@ -117,6 +117,7 @@ namespace Elwig.Windows {
|
|||||||
await Context.SaveChangesAsync();
|
await Context.SaveChangesAsync();
|
||||||
|
|
||||||
foreach (var mod in ModifierList.Where(m => !ModifierIds.ContainsKey(m))) {
|
foreach (var mod in ModifierList.Where(m => !ModifierIds.ContainsKey(m))) {
|
||||||
|
if (mod.ModId == null) continue;
|
||||||
await Context.AddAsync(mod);
|
await Context.AddAsync(mod);
|
||||||
}
|
}
|
||||||
await Context.SaveChangesAsync();
|
await Context.SaveChangesAsync();
|
||||||
@ -321,6 +322,7 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void SeasonModifierRelInput_TextChanged(object sender, TextChangedEventArgs evt) {
|
private void SeasonModifierRelInput_TextChanged(object sender, TextChangedEventArgs evt) {
|
||||||
|
DecimalInput_TextChanged(sender, evt);
|
||||||
if ((!IsEditing && !IsCreating) || SeasonModifierList.SelectedItem is not Modifier mod) return;
|
if ((!IsEditing && !IsCreating) || SeasonModifierList.SelectedItem is not Modifier mod) return;
|
||||||
ModifiersChanged = ModifiersChanged || (SeasonModifierRelInput.Text ?? "") != ((SeasonModifierList.SelectedItem as Modifier)?.Rel?.ToString() ?? "");
|
ModifiersChanged = ModifiersChanged || (SeasonModifierRelInput.Text ?? "") != ((SeasonModifierList.SelectedItem as Modifier)?.Rel?.ToString() ?? "");
|
||||||
if (ModifierUpdate) return;
|
if (ModifierUpdate) return;
|
||||||
@ -331,11 +333,13 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void SeasonModifierAbsInput_TextChanged(object sender, TextChangedEventArgs evt) {
|
private void SeasonModifierAbsInput_TextChanged(object sender, TextChangedEventArgs evt) {
|
||||||
if ((!IsEditing && !IsCreating) || SeasonModifierList.SelectedItem is not Modifier mod) return;
|
DecimalInput_TextChanged(sender, evt);
|
||||||
|
if ((!IsEditing && !IsCreating) || SeasonModifierList.SelectedItem is not Modifier mod || SeasonList.SelectedItem is not Season s) return;
|
||||||
ModifiersChanged = ModifiersChanged || (SeasonModifierAbsInput.Text ?? "") != ((SeasonModifierList.SelectedItem as Modifier)?.Abs?.ToString() ?? "");
|
ModifiersChanged = ModifiersChanged || (SeasonModifierAbsInput.Text ?? "") != ((SeasonModifierList.SelectedItem as Modifier)?.Abs?.ToString() ?? "");
|
||||||
if (ModifierUpdate) return;
|
if (ModifierUpdate) return;
|
||||||
mod.Abs = decimal.TryParse(SeasonModifierAbsInput.Text, out var v) ? v : null;
|
// FIXME ValueStr does not work in ModifierList when modifier is newly created
|
||||||
if (mod.Abs != null) SeasonModifierRelInput.Text = "";
|
mod.AbsValue = decimal.TryParse(SeasonModifierAbsInput.Text, out var v) ? Utils.DecToDb(v, s.Precision) : null;
|
||||||
|
if (mod.AbsValue != null) SeasonModifierRelInput.Text = "";
|
||||||
CollectionViewSource.GetDefaultView(ModifierList).Refresh();
|
CollectionViewSource.GetDefaultView(ModifierList).Refresh();
|
||||||
UpdateButtons();
|
UpdateButtons();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user