57 lines
1.7 KiB
C#
57 lines
1.7 KiB
C#
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<GroupPresenter> groups)
|
|
{
|
|
_nameTextBox = new TextBox { Text = currentName };
|
|
|
|
_groupComboBox = new ComboBox
|
|
{
|
|
ItemsSource = groups,
|
|
SelectedItem = groups.FirstOrDefault(g => g.Id == currentGroupId),
|
|
ItemTemplate = new FuncDataTemplate<GroupPresenter>((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);
|
|
}
|
|
}
|
|
} |