listview - Viewcell 绑定上下文在 xamarin 表单中不起作用
问题描述
我有一个列表视图和许多视图单元。Itemstemplate 是使用 MessageTemplateSelector 类选择的。在 MainViewModel 中有一个 Messages 集合。我已将消息集合绑定到列表视图中。它工作正常。但是 viewcell UI 元素与名为 ShowSenderIcon 的 viewmodel 属性绑定,该属性未绑定到 UI 元素中。我尝试了很多建议。但它不起作用。下面提到了我的示例代码,请参考,我的要求是我想通过使用 viewmodel (ShowSenderIcon) 属性来隐藏 Frame。
我试过这个,
主页.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 });
}
解决方案
推荐阅读
- python - 如何从一维 numpy 数组创建时间序列数据框
- javascript - toLocaleDateString - 获取日期格式字符串的好方法?
- unity3d - 使用 Unity 的 3D Spotlight 作为视野组件
- azure - UnicodeDecodeError:“ascii”编解码器无法解码字节(微软 API)
- css - Chrome 中的划痕图像
- r - R x 轴毫秒到日期标签
- angular - mat-slider 应该如何在使用 formGroup 配置的表单中使用?角材料
- excel - 在excel中查找两列差异最大的行
- c# - 将数据上传到sql表
- jmeter - 如何在 jmeter 上读取分块的 HTTP 响应?