|
@@ -10,6 +10,9 @@ public class StockTransformWindowViewModel : INotifyPropertyChanged
|
|
|
{
|
|
|
private double _oldAvailable;
|
|
|
private double _newAvailable;
|
|
|
+ private string oldUnitSize;
|
|
|
+ private string newUnitSize;
|
|
|
+ private double maxAvailable;
|
|
|
|
|
|
public void Load(StockHolding holding)
|
|
|
{
|
|
@@ -30,12 +33,38 @@ public class StockTransformWindowViewModel : INotifyPropertyChanged
|
|
|
|
|
|
public StockDimensions NewDimensions { get; private set; }
|
|
|
|
|
|
- public string OldUnitSize { get; set; }
|
|
|
-
|
|
|
- public string NewUnitSize { get; set; }
|
|
|
+ public bool CanSave => NewDimensions.Value != 0.0 && !NewDimensions.Equals(OldDimensions);
|
|
|
+
|
|
|
+ public string OldUnitSize
|
|
|
+ {
|
|
|
+ get => oldUnitSize;
|
|
|
+ set
|
|
|
+ {
|
|
|
+ oldUnitSize = value;
|
|
|
+ OnPropertyChanged();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public string NewUnitSize
|
|
|
+ {
|
|
|
+ get => newUnitSize;
|
|
|
+ set
|
|
|
+ {
|
|
|
+ newUnitSize = value;
|
|
|
+ OnPropertyChanged();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public double MaxAvailable
|
|
|
+ {
|
|
|
+ get => maxAvailable;
|
|
|
+ private set
|
|
|
+ {
|
|
|
+ maxAvailable = value;
|
|
|
+ OnPropertyChanged();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- public double MaxAvailable { get; private set; }
|
|
|
-
|
|
|
public double OldAvailable
|
|
|
{
|
|
|
get => _oldAvailable;
|
|
@@ -43,8 +72,17 @@ public class StockTransformWindowViewModel : INotifyPropertyChanged
|
|
|
{
|
|
|
if (value.Equals(_oldAvailable)) return;
|
|
|
_oldAvailable = value;
|
|
|
- NewAvailable = value * OldDimensions.Value / NewDimensions.Value;
|
|
|
+
|
|
|
+ if(NewDimensions.Value == 0.0)
|
|
|
+ {
|
|
|
+ NewAvailable = 0.0;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ NewAvailable = value * OldDimensions.Value / NewDimensions.Value;
|
|
|
+ }
|
|
|
OnPropertyChanged();
|
|
|
+ OnPropertyChanged(nameof(CanSave));
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -65,9 +103,18 @@ public class StockTransformWindowViewModel : INotifyPropertyChanged
|
|
|
NewDimensions = new StockDimensions();
|
|
|
NewDimensions.PropertyChanged += (sender, args) =>
|
|
|
{
|
|
|
- NewAvailable = OldAvailable * OldDimensions.Value / NewDimensions.Value;
|
|
|
+ if(NewDimensions.Value == 0.0)
|
|
|
+ {
|
|
|
+ NewAvailable = 0.0;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ NewAvailable = OldAvailable * OldDimensions.Value / NewDimensions.Value;
|
|
|
+ }
|
|
|
OldUnitSize = OldDimensions.UnitSize;
|
|
|
NewUnitSize = NewDimensions.UnitSize;
|
|
|
+
|
|
|
+ OnPropertyChanged(nameof(CanSave));
|
|
|
};
|
|
|
}
|
|
|
|