private void HandleSelectedShipPropertyChanged(object sender, PropertyChangedEventArgs e) { if (_currentShip != null) { _currentShip.PropertyChanged -= HandleCurrentShipPropertyChanged; } _currentShip = _selectedShip.Value; _currentShip.PropertyChanged += HandleCurrentShipPropertyChanged; HandleCurrentShipPropertyChanged(this, new PropertyChangedEventArgs(null)); }
private void HandleSelectedShipPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { if (_currentShip != null) { _currentShip.ShipStatus.PropertyChanged -= HandleCurrentShipShipStatusChanged; } _currentShip = _selectedShip.Value; _currentShip.ShipStatus.PropertyChanged += HandleCurrentShipShipStatusChanged; HandleCurrentShipShipStatusChanged(this, new PropertyChangedEventArgs(null)); }
public ShipViewModel(IShipReadOnly ship, IValueHolderReadOnly <double> metersPerPixel, IValueHolderReadOnly <double> seaMapSizeInPixels, IValueHolder <IShipReadOnly> selectedShip) { _ship = ship; _ship.PropertyChanged += HandleShipPropertyChanged; _metersPerPixel = metersPerPixel; _metersPerPixel.PropertyChanged += HandleMetersPerPixelPropertyChanged; _seaMapSizeInPixels = seaMapSizeInPixels; _selectedShip = selectedShip; _selectedShip.PropertyChanged += HandleSelectedShipPropertyChanged; UpdateShape(); }
public void SetRequestedSailLevel(IShipReadOnly ship, SailLevelChange sailLevelChange) { _shipsByIndex[ship.Index].CurrentShipOrder.SetSailLevelChange(sailLevelChange); }
public void AddMovementOrder(IShipReadOnly ship, MovementOrder movementOrder) { _shipsByIndex[ship.Index].CurrentShipOrder.MovementOrders.Add(movementOrder); }
public void RemoveMovementOrderFromShip(IShipReadOnly ship, MovementOrder movementOrder) { _shipsByIndex[ship.Index].CurrentShipOrder.MovementOrders.Remove(movementOrder); }