public void BindViewModel(ChatSummaryViewModel viewModel) { _viewModelRef = WeakReferenceEx.Create(viewModel); LastMessageBodyPhotoIcon.Image = UIImage.FromBundle(StyleHelper.Style.LastMessageBodyPhotoIcon); LastMessageBodyPhotoLabel.Text = viewModel.LocalizedStrings.Photo; _bindings.Apply(x => x.Detach()); _bindings.Clear(); _bindings.Add(this.SetBinding(() => _viewModelRef.Target.ChatName, () => ChatNameLabel.Text)); _bindings.Add(this.SetBinding(() => _viewModelRef.Target.LastMessageViewModel.Body).WhenSourceChanges((obj) => { MessageBodyLabel.Text = _viewModelRef.Target.LastMessageViewModel.Body; BodyContainer.Hidden = !_viewModelRef.Target.LastMessageViewModel.HasBody && !_viewModelRef.Target.LastMessageViewModel.HasPhoto; })); _bindings.Add(this.SetBinding(() => _viewModelRef.Target.ChatPhotoUrl).WhenSourceChanges(() => { SenderPhotoImageView.LoadImageWithTextPlaceholder( _viewModelRef.Target.ChatPhotoUrl, _viewModelRef.Target.ChatName, StyleHelper.Style.AvatarStyles); })); _bindings.Add(this.SetBinding(() => _viewModelRef.Target.IsMuted).WhenSourceChanges(() => { if (UnreadMessageCountLabel != null) { UnreadMessageCountBackground.BackgroundColor = _viewModelRef.Target.IsMuted ? UIColor.FromRGB(180, 180, 180) : StyleHelper.Style.AccentColor; } })); _bindings.Add(this.SetBinding(() => _viewModelRef.Target.UnreadMessageCount).WhenSourceChanges(() => { if (UnreadMessageCountLabel != null) { UnreadMessageCountLabel.Text = _viewModelRef.Target.UnreadMessageCount.ToString(); UnreadMessageCountBackground.Hidden = _viewModelRef.Target.UnreadMessageCount == 0; } })); _bindings.Add(this.SetBinding(() => _viewModelRef.Target.LastMessageViewModel.DateTime, () => DateTimeLabel.Text)); _bindings.Add(this.SetBinding(() => _viewModelRef.Target.UnreadMessageCount, () => UnreadMessageCountLabel.Text)); _bindings.Add(this.SetBinding(() => _viewModelRef.Target.LastMessageViewModel.HasPhoto).WhenSourceChanges(() => { if (!_viewModelRef.Target.LastMessageViewModel.HasBody && _viewModelRef.Target.LastMessageViewModel.HasPhoto) { LastMessageBodyPhotoView.Hidden = false; } else { LastMessageBodyPhotoView.Hidden = true; } BodyContainer.Hidden = !_viewModelRef.Target.LastMessageViewModel.HasBody && !_viewModelRef.Target.LastMessageViewModel.HasPhoto; })); }
public OpenNewChatMessage(ChatSummaryViewModel viewModel) { Data = viewModel; }