using CaeKnowledge.Data; using System.Collections.Generic; using System.ComponentModel; using System.Runtime.CompilerServices; // ReSharper disable ConvertToAutoPropertyWhenPossible namespace CaeKnowledge.View { public class ViewToolPosition : INotifyPropertyChanged { private readonly ToolPosition _base; public ViewToolPosition(ToolPosition tp) { _base = tp; } public ViewToolPosition(): this(new ToolPosition()) {} [Browsable(false)] public ToolPosition Base => _base; [Category("1位置")] [DisplayName(@"X坐标")] public double X { get => _base.X; set { _base.X = value; OnPropertyChanged(); } } [Category("1位置")] [DisplayName(@"Y坐标")] public double Y { get => _base.Y; set { _base.Y = value; OnPropertyChanged(); } } [Category("1位置")] [DisplayName(@"Z坐标")] public double Z { get => _base.Z; set { _base.Z = value; OnPropertyChanged(); } } [Category("2平均力")] [DisplayName(@"X方向AverageFx")] public double AverageFx { get => _base.AverageFx; set { _base.AverageFx = value; OnPropertyChanged(); } } [Category("2平均力")] [DisplayName(@"Y方向AverageFy")] public double AverageFy { get => _base.AverageFy; set { _base.AverageFy = value; OnPropertyChanged(); } } [Category("2平均力")] [DisplayName(@"Z方向AverageFz")] public double AverageFz { get => _base.AverageFz; set { _base.AverageFz = value; OnPropertyChanged(); } } [Category("3最大力")] [DisplayName(@"X方向MaxFx")] public double MaxFx { get => _base.MaxFx; set { _base.MaxFx = value; OnPropertyChanged(); } } [Category("3最大力")] [DisplayName(@"Y方向MaxFy")] public double MaxFy { get => _base.MaxFy; set { _base.MaxFy = value; OnPropertyChanged(); } } [Category("3最大力")] [DisplayName(@"Z方向MaxFz")] public double MaxFz { get => _base.MaxFz; set { _base.MaxFz = value; OnPropertyChanged(); } } public override string ToString() { return $"{X}, {Y}, {Z}"; } public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } protected bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null) { if (EqualityComparer.Default.Equals(field, value)) return false; field = value; OnPropertyChanged(propertyName); return true; } } }