ControlUtils: Cleanup SelectItem() method and use accordingly

This commit is contained in:
2024-03-18 17:55:27 +01:00
parent 51e345f1fd
commit 2f3524db9d
20 changed files with 181 additions and 194 deletions

View File

@ -90,8 +90,7 @@ namespace Elwig.Windows {
FocusMember(mgnr);
});
} else {
MemberList.SelectedItem = item;
MemberList.ScrollIntoView(MemberList.SelectedItem);
ControlUtils.SelectItem(MemberList, item);
}
}
@ -218,7 +217,7 @@ namespace Elwig.Windows {
.ToList();
}
ControlUtils.RenewItemsSource(MemberList, members, i => (i as Member)?.MgNr,
ControlUtils.RenewItemsSource(MemberList, members,
MemberList_SelectionChanged, TextFilter.Count > 0 ? ControlUtils.RenewSourceDefault.IfOnly : ControlUtils.RenewSourceDefault.None, !updateSort);
}
@ -268,8 +267,8 @@ namespace Elwig.Windows {
protected override async Task OnRenewContext() {
await base.OnRenewContext();
using var ctx = new AppDbContext();
ControlUtils.RenewItemsSource(BranchInput, await ctx.Branches.OrderBy(b => b.Name).ToListAsync(), i => (i as Branch)?.ZwstId);
ControlUtils.RenewItemsSource(DefaultKgInput, await ctx.WbKgs.Select(k => k.AtKg).OrderBy(k => k.Name).ToListAsync(), i => (i as AT_Kg)?.KgNr);
ControlUtils.RenewItemsSource(BranchInput, await ctx.Branches.OrderBy(b => b.Name).ToListAsync());
ControlUtils.RenewItemsSource(DefaultKgInput, await ctx.WbKgs.Select(k => k.AtKg).OrderBy(k => k.Name).ToListAsync());
await RefreshMemberList();
StatusMembers.Text = $"Mitglieder: {await ctx.Members.CountAsync(m => m.IsActive):N0} ({await ctx.Members.CountAsync():N0})";
StatusBusinessShares.Text = $"Geschäftsanteile: {await ctx.Members.Where(m => m.IsActive).SumAsync(m => m.BusinessShares):N0} ({await ctx.Members.SumAsync(m => m.BusinessShares):N0})";
@ -686,7 +685,7 @@ namespace Elwig.Windows {
AT_PlzDest? p = m.PostalDest.AtPlz;
if (p != null) {
PlzInput.Text = p.Plz.ToString();
ControlUtils.SelectComboBoxItem(OrtInput, o => (o as AT_PlzDest)?.Okz, p.Okz);
ControlUtils.SelectItem(OrtInput, p);
} else {
PlzInput.Text = null;
OrtInput.SelectedItem = null;
@ -728,7 +727,7 @@ namespace Elwig.Windows {
AT_PlzDest? b = billingAddr.PostalDest.AtPlz;
if (b != null) {
BillingPlzInput.Text = b.Plz.ToString();
ControlUtils.SelectComboBoxItem(BillingOrtInput, o => (o as AT_PlzDest)?.Okz, b.Okz);
ControlUtils.SelectItem(BillingOrtInput, b);
}
} else {
BillingNameInput.Text = "";
@ -741,8 +740,8 @@ namespace Elwig.Windows {
ExitDateInput.Text = (m.ExitDateString != null) ? string.Join(".", m.ExitDateString.Split("-").Reverse()) : null;
BusinessSharesInput.Text = m.BusinessShares.ToString();
AccountingNrInput.Text = m.AccountingNr;
ControlUtils.SelectComboBoxItem(BranchInput, b => (b as Branch)?.ZwstId, m.ZwstId);
ControlUtils.SelectComboBoxItem(DefaultKgInput, k => (k as AT_Kg)?.KgNr, m.DefaultKgNr);
ControlUtils.SelectItemWithPk(BranchInput, m.ZwstId);
ControlUtils.SelectItemWithPk(DefaultKgInput, m.DefaultKgNr);
CommentInput.Text = m.Comment;
ActiveInput.IsChecked = m.IsActive;
VollLieferantInput.IsChecked = m.IsVollLieferant;