Контекст привязки Viewcell не работает в формах xamarin - PullRequest
0 голосов
/ 31 декабря 2018

У меня есть список и много ячеек.Элемент Itemstemplate выбирается с помощью класса MessageTemplateSelector.В MainViewModel есть коллекция сообщений.Я связал коллекцию сообщений в списке.Работает нормально.Но элемент пользовательского интерфейса viewcell связан со свойством viewmodel с именем ShowSenderIcon, которое не связано с элементом пользовательского интерфейса.Я перепробовал много предложений.Но это не работает.Мой пример кода приведен ниже. Пожалуйста, обратитесь. Мое требование - я хочу скрыть фрейм с помощью свойства viewmodel (ShowSenderIcon).

Я пробовал это,

MainPage.xaml

<sync:SfListView
  x:Name="ListView"
  Grid.Row="0"
  Margin="0"
  AutoFitMode="Height"
  IsBusy="True"
  ItemSize="100"
  ItemSpacing="10"
  ItemTemplate="{StaticResource MessageTemplateSelector}"
  ItemsSource="{Binding Messages}"
  SelectionMode="None"
  VerticalOptions="Start"/>

IncomingViewCell.cs

<Frame
  x:Name="avatorFrame"
  CornerRadius="25"
  HasShadow="false"
  IsVisible="{Binding Path=BindingContext.ShowSenderIcon, Source={x:Reference ListView}, Mode=TwoWay}"
  OutlineColor="Gray"/>

MainPageViewModel.cs

private bool showSenderIcon = false;
public bool ShowSenderIcon
{
   get { return showSenderIcon; }
   set { showSenderIcon = value; OnPropertyChanged("ShowSenderIcon"); }
}

private ObservableCollection<Message> messagesList;
public ObservableCollection<Message> Messages
{
   get { return messagesList; }
   set { messagesList = value; }
}

public MainPageViewModel()
{
   Messages = new ObservableCollection<Message>();
   Messages.Add(new Message { Text = "Hi", IsIncoming = true, MessagDateTime = DateTime.Now, ShowTimeStamp = false });
}
...