using Prism.Commands; using Prism.Services.Dialogs; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Input; using Txgy.EWS.Client.IBLL; using Txgy.EWS.Client.Models; namespace BaseModule.ViewModels { public class SelectUserDialogViewModel : IDialogAware { public string Title => "选择用户"; public event Action RequestClose; public bool CanCloseDialog() => true; public void OnDialogClosed() { } public void OnDialogOpened(IDialogParameters parameters) { _userIds = parameters.GetValue>("ids"); } List _userIds; public ObservableCollection Users { get; set; } = new ObservableCollection(); IUserBLL _userBLL; public SelectUserDialogViewModel(IUserBLL userBLL) { _userBLL = userBLL; this.InitUsers(); } private async void InitUsers() { var users = await _userBLL.GetAll(); users.Where(u => !_userIds.Contains(u.UserId)).ToList(). ForEach(u => Users.Add(new UserInfoModel { UserId = u.UserId, UserName = u.UserName, RealName = u.RealName })); } public ICommand ConfirmCommand { get => new DelegateCommand(() => { // 返回选中用户 DialogParameters param = new DialogParameters(); param.Add("users", Users.Where(u => u.IsSelected).ToList()); RequestClose?.Invoke(new DialogResult(ButtonResult.OK, param)); }); } public ICommand CancelCommand { get => new DelegateCommand(() => { RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel)); }); } } }