using System.Linq; using Prism.Mvvm; using Prism.Events; using Prism.Commands; using SHJX.Service.Model.Dao; using SHJX.Service.Common.Event; using SHJX.Service.Control.Interface; using System.Collections.ObjectModel; namespace SHJX.Service.Library.ViewModels { public class WaveShowBoxViewModel : BindableBase { #region Fields private readonly IEventAggregator _ea; private readonly IMainService _service; #endregion #region Properties private string _waveKeyItem; public string WaveKeyItem { get => _waveKeyItem; set => SetProperty(ref _waveKeyItem, value); } private bool? _dialogResult; public bool? DialogResult { get { return _dialogResult; } set => SetProperty(ref _dialogResult, value); } public ObservableCollection Wavekeys { get; set; } #endregion public WaveShowBoxViewModel(IEventAggregator ea, IMainService service) { _ea = ea; _service = service; Wavekeys = new ObservableCollection((from wavekey in _service.GetData().ToList() orderby wavekey.WaveKey descending select wavekey.WaveKey).ToList()); } #region Commands private DelegateCommand _waveKeyCommand; public DelegateCommand WaveKeyCommand => _waveKeyCommand ?? new DelegateCommand(ExecuteWaveKeyCommand); #endregion #region Execute private void ExecuteWaveKeyCommand() { _ea.GetEvent().Publish(WaveKeyItem); DialogResult = true; } #endregion } }