我有一个列表视图和许多视单元。通过使用MessageTemplateSelector类选择Itemstemplate。在MainViewModel中,有一个Messages集合。我已经将Message集合绑定到listview中。一切正常。但是,viewcell UI元素与名为showSenderIcon的viewmodel属性绑定,但未绑定到UI元素中。我尝试了很多建议。但这是行不通的。我的示例代码在下面提到,请参考,我的要求是我想通过使用viewmodel(ShowSenderIcon)属性隐藏Frame。
我已经尝试过了
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 });
}