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));
}