using GalaSoft.MvvmLight.Command; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using Unity; namespace FLY.DownBlowing.UI.Client.UiModule { /// <summary> /// Window_Frequency.xaml 的交互逻辑 /// </summary> public partial class WdSetValue : FLY.ControlLibrary.WindowBigClose { WdSetValueVm viewModel; public float Value { get { return viewModel.Value; } } public WdSetValue() { InitializeComponent(); viewModel = new WdSetValueVm(); } public void Init( float value, float max, float min, float step, string title, string unit) { viewModel.Init(value, max, min, step, title, unit); this.DataContext = viewModel; } private void btnOkClick(object sender, RoutedEventArgs e) { this.DialogResult = true; this.Close(); } } public class WdSetValueVm : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public float Value { get; set; } public string Title { get; private set; } = "速度设置"; public string Unit { get; private set; } = "m/min"; #region Command public RelayCommand PlusCmd { get; } public RelayCommand MinusCmd { get; } public RelayCommand OkCmd { get; } #endregion float max; float min; float step; public WdSetValueVm() { PlusCmd = new RelayCommand(Plus); MinusCmd = new RelayCommand(Minus); } public void Init( float value, float max, float min, float step, string title, string unit) { Value = value; Title = title; Unit = unit; this.max = max; this.min = min; this.step = step; } private void Minus() { if (Value > min) Value -= step; } private void Plus() { if (Value < max) Value += step; } } }