Ejemplo n.º 1
0
        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;
            }));
        }
Ejemplo n.º 2
0
 public OpenNewChatMessage(ChatSummaryViewModel viewModel)
 {
     Data = viewModel;
 }