using Avalonia.Controls; using Avalonia.Controls.Templates; using data.RemoteData.RemoteDataBase.DAO; using Presence.Desktop.ViewModels; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using data.RemoteData.RemoteDataBase.DAO; namespace Presence.Desktop { public partial class EditUserDialog : Window { private TextBox _nameTextBox; private ComboBox _groupComboBox; // Конструктор, принимающий имя и ID группы public EditUserDialog(int 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 = (data.RemoteData.RemoteDataBase.DAO.GroupDao)_groupComboBox.SelectedItem; if (selectedGroup != null) { var newGroupId = selectedGroup.Id; // Получаем ID выбранной группы // Закрываем диалог this.Close(); } }; Content = new StackPanel { Children = { _nameTextBox, _groupComboBox, confirmButton } }; } // Асинхронный метод для получения результата от пользователя public async Task<(string, GroupDao)> ShowEditDialog(Window parent) { await base.ShowDialog(parent); // Передаем родительское окно var name = _nameTextBox.Text; var groupId = (GroupDao)_groupComboBox.SelectedItem; return (name, groupId); } } }