C# Доступ к свойствам BindableObject - PullRequest
0 голосов
/ 07 января 2020

У меня проблема. Я создал CollectionView с несколькими продуктами. Теперь я добавил к нему TapGestureRecognizer со следующей функцией:

private void product_Clicked(object sender, EventArgs e)
{
    CachedImage image = (CachedImage)sender;

    var FileName = image.Source.BindingContext;
}

Теперь мне нужно получить FileName, который хранится внутри BindingContext. Если я установлю точку останова в этой строке: var FileName = image.Source.BindingContext; Я вижу в BindableContext, что есть элемент с именем FileName, но когда я делаю это: var FileName = image.Source.BindingContext.FileName;, он говорит:

'object 'не содержит определения для' FileName '

Так как я могу получить доступ к этому свойству из BindableObject?

1 Ответ

0 голосов
/ 07 января 2020

Объявленный тип BindingContext - object, который, конечно, не имеет свойства FileName, поэтому компилятор C# этого не допустит.

Если вы хотите получить доступ к фактическому типу объекта вам нужно привести BindingContext следующим образом:

var viewModel = (MyViewModel)image.Source.BindingContext;
var filename = viewModel.FileName;

Заменить на фактическое имя класса, которое вы используете для BindingContext, для которого FileName является свойством.

...