C#访问BindableObject属性

问题描述 投票:0回答:1

我有问题。我用一些产品创建了一个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访问该属性?

c# xamarin xamarin.forms xamarin.android xamarin.ios
1个回答
0
投票

BindingContext的声明类型是object,它当然没有FileName属性,因此C#编译器不允许这样做。

如果要访问实际对象的类型,则需要执行以下操作:

    var viewModel = image.Source.BindingContext as MyViewModel;
    var filename = viewModel.FileName;

用您实际的类名替换具有FileName作为属性的BindingContext。

© www.soinside.com 2019 - 2024. All rights reserved.