public ReplayEditorViewModel(string replayPath)
        {
            this.CurrentFile = replayPath;

            try
            {
                this.replay = Replay.Parse(this.CurrentFile);
            }
            catch (Exception ex)
            {
                MessageBox.Show("The replay failed to load. Reason: " + ex.Message);
                return;
            }

            this.ReplayHeader = Path.GetFileName(this.CurrentFile);
            var messages = new ObservableCollection<PlayerChatMessage>();

            foreach (var message in this.replay.ChatMessages)
            {
                int id = message.PlayerId - 1;
                if (id < this.replay.Players.Length)
                {
                    var chat = new PlayerChatMessage { ChatMessage = message, Player = this.replay.Players[message.PlayerId - 1] };
                    messages.Add(chat);
                }
            }

            this.ChatMessageEditor = new ChatMessageEditViewModel { PlayerList = this.replay.Players };

            this.ChatMessages = messages;
        }
 private void RemoveSelected()
 {
     this.ChatMessages.Remove(this.SelectedChatMessage);
     this.SelectedChatMessage = null;
 }
        private void AddNew()
        {
            var message = new PlayerChatMessage
                {
                    Player = this.chatMessageEditor.PlayerList[0],
                    ChatMessage = new ChatMessage { PlayerId = 1, MessageTarget = ChatMessageTarget.All, }
                };

            this.ChatMessages.Add(message);
            this.SelectedChatMessage = message;
        }