using Avalonia.Controls; using Avalonia.Controls.Templates; using Presence.Desktop.ViewModels; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace Presence.Desktop { public partial class EditUserDialog : Window { private TextBox _nameTextBox; private ComboBox _groupComboBox; public EditUserDialog(Guid currentUserId, string currentName, int currentGroupId, List groups) { _nameTextBox = new TextBox { Text = currentName }; _groupComboBox = new ComboBox { ItemsSource = groups, SelectedItem = groups.FirstOrDefault(g => g.Id == currentGroupId), ItemTemplate = new FuncDataTemplate((group, _) => new TextBlock { Text = group.Name }) }; var confirmButton = new Button { Content = "OK" }; confirmButton.Click += (sender, args) => { var newFio = _nameTextBox.Text; var selectedGroup = (GroupPresenter)_groupComboBox.SelectedItem; if (selectedGroup != null) { var newGroupId = selectedGroup.Id; this.Close(); } }; Content = new StackPanel { Children = { _nameTextBox, _groupComboBox, confirmButton } }; } public async Task<(string, GroupPresenter)> ShowDialog(Window parent) { await base.ShowDialog(parent); var name = _nameTextBox.Text; var groupId = (GroupPresenter)_groupComboBox.SelectedItem; return (name, groupId); } } }