Xamarin.Forms получают ViewModel как BindingContext в ViewCell ListView

Я добавить DataTemplateSelector в FlowListView(в основном так же, как ListView).

<ContentView
    ...
    BindingContext="{Binding PatientImageListVM, Source={StaticResource VMLocator}}">
    ...
    <flv:FlowListView
        ...
        HasUnevenRows="true">
        <flv:FlowListView.FlowColumnTemplate>
            <local:PatientImageListDataTemplateSelector/>
        </flv:FlowListView.FlowColumnTemplate>
    </flv:FlowListView>
</ContentView>

И я использую этот код для получения ячейки с привязкой.

button.SetBinding(Button.CommandParameterProperty, ".");

Но я хочу использовать некоторые переменные в ViewModel связан с ContentView в DataTemplateSelector, Я попробовал этот код, но не работает.

label.SetBinding(Label.IsVisibleProperty, 
    "{Binding BindingContext.LabelVisibility, Source={x:Reference Page}}");

Как я могу получить жизнеспособный в ViewModel в DataTemplateSellector?

1 ответ

Решение
label.SetBinding(Label.IsVisibleProperty, new Binding("BindingContext.LabelVisibility", source: this));

Это должно работать. Вы должны передать "Страницу" своему связыванию с "этим". Таким образом, вы должны установить привязку при создании ItemTemplate

lv.ItemTemplate = new DataTemplate(() =>
{
    //....
    label.SetBinding(Label.IsVisibleProperty, new Binding("BindingContext.LabelVisibility", source: this));
}
Другие вопросы по тегам