我有问题。我用一些产品创建了一个CollectionView。现在,我通过以下功能为其添加了TapGestureRecognizer:
private void product_Clicked(object sender, EventArgs e)
{
CachedImage image = (CachedImage)sender;
var FileName = image.Source.BindingContext;
}
现在,我想要获取存储在BindingContext内部的FileName。如果我在此行上设置断点:var FileName = image.Source.BindingContext;
我可以在BindableContext中看到一个名为FileName的元素,但是当我这样做时:var FileName = image.Source.BindingContext.FileName;
,它说:
''object'不包含'FileName'的定义
那么如何从BindableObject访问该属性?
BindingContext的声明类型是object,它当然没有FileName属性,因此C#编译器不允许这样做。
如果要访问实际对象的类型,则需要执行以下操作:
var viewModel = image.Source.BindingContext as MyViewModel;
var filename = viewModel.FileName;
用您实际的类名替换具有FileName作为属性的BindingContext。