public FriendViewModel(IDataService dataService, int friendNumber) { _toxModel = dataService.ToxModel; _avatarManager = dataService.AvatarManager; FriendNumber = friendNumber; Conversation = new ConversationViewModel(dataService, this); FileTransfers = new FileTransfersViewModel(dataService, friendNumber); Call = new CallViewModel(friendNumber); Name = _toxModel.GetFriendName(friendNumber); if (Name == string.Empty) { Name = _toxModel.GetFriendPublicKey(friendNumber).ToString(); } StatusMessage = _toxModel.GetFriendStatusMessage(friendNumber); if (StatusMessage == string.Empty) { StatusMessage = "Friend request sent."; } SetFriendStatus(_toxModel.GetFriendStatus(friendNumber)); IsConnected = _toxModel.IsFriendOnline(friendNumber); _avatarManager.FriendAvatarChanged += FriendAvatarChangedHandler; _toxModel.FriendNameChanged += FriendNameChangedHandler; _toxModel.FriendStatusMessageChanged += FriendStatusMessageChangedHandler; _toxModel.FriendStatusChanged += FriendStatusChangedHandler; _toxModel.FriendConnectionStatusChanged += FriendConnectionStatusChangedHandler; }
private void FileTransferBlockDataContextChanged(FrameworkElement sender, DataContextChangedEventArgs args) { if (DataContext == null) { return; } _fileTransfersViewModel = DataContext as FileTransfersViewModel; _fileTransfersViewModel.VisualStates.PropertyChanged += VisualStatesPropertyChangedHandler; VisualStateManager.GoToState(this, _fileTransfersViewModel.VisualStates.BlockState.ToString(), false); _fileTransfersViewModel.Transfers.CollectionChanged += TransfersCollectionChangedHandler; }