using Correlator.Dialog; using Correlator.Model; using Correlator.Service; using Correlator.Util; using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.Command; using GalaSoft.MvvmLight.Messaging; namespace Correlator.ViewModel { public class EditSoundSpeedViewModel : ViewModelBase { private readonly ISoundSpeedDataService _dataService; private MaterialVelocity _materialVelocity; private string _minDiameter; public string MinDiameter { get => _minDiameter; set { _minDiameter = value; RaisePropertyChanged(() => MinDiameter); } } private string _maxDiameter; public string MaxDiameter { get => _maxDiameter; set { _maxDiameter = value; RaisePropertyChanged(() => MaxDiameter); } } private string _soundSpeed; public string SoundSpeed { get => _soundSpeed; set { _soundSpeed = value; RaisePropertyChanged(() => SoundSpeed); } } public RelayCommand<EditSoundSpeedDialog> DetermineParamCommand { get; set; } public EditSoundSpeedViewModel(ISoundSpeedDataService dataService) { _dataService = dataService; Messenger.Default.Register<MaterialVelocity>(this, MessengerToken.EditSoundSpeedMessage, it => { _materialVelocity = it; MinDiameter = _materialVelocity.LowDiameter.ToString(); MaxDiameter = _materialVelocity.HighDiameter.ToString(); SoundSpeed = _materialVelocity.Velocity.ToString(); }); DetermineParamCommand = new RelayCommand<EditSoundSpeedDialog>(EditSoundSpeed); } private void EditSoundSpeed(EditSoundSpeedDialog it) { _dataService.UpdateVelocity(_materialVelocity, _minDiameter, _maxDiameter, _soundSpeed); //更新界面数据 Messenger.Default.Send("", MessengerToken.UpdateSoundSpeed); //返回选择材质界面 it.Close(); } } }