问题描述
有没有办法在枚举模板中获取绑定上下文本身?
this.CollectionView.ItemTemplate = new DataTemplate(() =>
{
var view = new SubView();
view.SetBinding(SubView.sourceProperty,new Binding()
{
Source = ??? // <- here
});
return view;
};
注意:Path = "."
在 Android 上运行良好。但在 iOS 上,源是重复的。
我已经检查过 CollectionView.ItemsSource 中没有重复项。
解决方法
我是这个平台的新手,希望能帮到你。 我了解您想要获取列表中每个元素的 BindingContext。如果我的解释正确,那么您可以这样做:
public partial class NotificationsPage : ContentPageBase
{
public NotificationsPage()
{
InitializeComponent();
CollectionView.ItemTemplate = new DataTemplate(() =>
{
return new Item();
});
}
}
public class Item : ContentView
{
protected override void OnBindingContextChanged()
{
base.OnBindingContextChanged();
if (BindingContext is ItemModel item)
{
var name = item.Name;
}
}
}
public class ItemModel
{
public string Name { get; set; }
}
DataTemplate 不包含可访问的 BindingContext,BindingContext 被传递给包含 DataTemplate 的元素。