/// <summary> /// Распределить игроков /// </summary> /// <param name="players"></param> /// <param name="field"></param> private void DistributePlayers(IFootballPlayerList players, IFootballField field) { ObservableCollection <PlayerViewModel> _activePlayers = new ObservableCollection <PlayerViewModel>(); ObservableCollection <PlayerViewModel> _noActivePlayers = new ObservableCollection <PlayerViewModel>(); ObservableCollection <PlayerViewModel> _playersInField = new ObservableCollection <PlayerViewModel>(); foreach (IFootballPlayer player in players) { if (player.IsActive & player.PlayBox == 0) { PlayerViewModel playerVM = new PlayerViewModel(player, players.Editor, _playerEditor); _activePlayers.Add(playerVM); } else if (player.IsActive & player.PlayBox > 0) { PlayerViewModel playerVM = new PlayerViewModel(player, players.Editor, _playerEditor); _playersInField.Add(playerVM); } else if (!player.IsActive) { PlayerViewModel playerVM = new PlayerViewModel(player, players.Editor, _playerEditor); _noActivePlayers.Add(playerVM); } } _playersVM = new PLayersViewModel(_activePlayers, _noActivePlayers); _playersVM.PropertyChanged += PlayersVM_PropertyChanged; _playersVM.ActivePlayersVM.PropertyChanged += ActivePlayersVM_PropertyChanged; _playersVM.NoActivePlayersVM.PropertyChanged += NoActivePlayersVM_PropertyChanged; _fieldVM = new FieldViewModel(_playersInField, field); _fieldVM.BoxSelected += _fieldVM_BoxSelected; _fieldVM.PreRemovalPlayer += _fieldVM_PreRemovalPlayer; }
public PlayersManager(IFootballPlayerList players, IFootballField field, IEfficiencyChart chart) { players.LoadPlayers(); _players = players; _playerEditor = players.GetPlayerEditor(); _playerEditor.AcceptChanges += _playerEditor_AcceptChanges; _players.AddedPlayer += Players_AddedPlayer; _addPlayersVM = new AddPlayerViewModel(players.Editor); _parametersEditorVM = new ParametersEditorViewModel(_playerEditor); _chartVM = new ChartViewModel(chart); _selectedField = true; DistributePlayers(players, field); }
/// <summary> /// Инициализация редактора списка игроков /// </summary> /// <param name="playerList"></param> public FootballPlayersListEditor(IFootballPlayerList playerList) { _playerList = playerList; _loader = (_playerList as FootballPlayerList).Loader; }
/// <summary> /// Инициализация ViewModel'и футбол /// </summary> /// <param name="playerList"></param> public FootballViewModel(IFootballPlayerList playerList, IFootballField field, IEfficiencyChart chart) { _playerList = playerList; _playersManeger = new PlayersManager(playerList, field, chart); _selectedTabIndex = 0; }