Как правильно отделить поля и свойства в MVVM для расчетов
пытаюсь постигнуть MVVM. У меня есть поля и свойства(подключенные к XAML форме приложения)
В классе MainWindowViewModel:ViewModel
private double _dL;
public double dL
{
get => _dL;
set => Set(ref _dL, value);
}
Соотвественно в разметке XAML привязано поле dL.
Класс ViewModel реализуется так:
internal abstract class ViewModel : INotifyPropertyChanged, IDisposable
{
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string PropertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(PropertyName));
}
protected virtual bool Set<T>(ref T field, T value, [CallerMemberName] string PropertyName = null)
{
if (Equals(field, value)) return false;
field = value;
OnPropertyChanged(PropertyName);
return true;
}
public void Dispose()
{
Dispose(true);
}
private bool _Disposed;
protected virtual void Dispose(bool Disposing)
{
if (!Disposing || _Disposed) return;
_Disposed = true;
}
}
Я раньше думал, что поля мне служат для внутренней логики и расчетов, а свойства для отображения на форме. Например, мне внутри программы нужно провести точные расчеты в вывести на форме - округленные значения. я в классе MainWindowViewModel что то считаю с _dL
_dL = 3.14*255/360+0.1;
То есть получаю точные значения без округления, а затем для формы пишу
dL = Math.Round(_dL,3); // и на форме отобразиться округленное значение
Но проблема в том, что если мне в дальнейшем нужно будет опять использовать для расчетов _dL (точное значение) - оно уже исчезло, и у меня только округленное свойство есть.
Как быть? Кроме очевидного - там где мне надо снова - опять считать _dL ?