Поделиться через


Расширения BindableLayout

Расширения BindableLayout предоставляют ряд методов расширения, поддерживающих настройку его EmptyViewи ItemSourceItemTemplate.

EmptyView

Метод EmptyView задает EmptyView свойство для объекта ILayout.

В следующем примере задается EmptyView значение new Label().Text("No Items Found"):

new VerticalStackLayout().EmptyView(new Label().Text("No Items Found"));

EmptyViewTemplate

Метод EmptyViewTemplate задает EmptyViewTemplate свойство для объекта ILayout.

В следующем примере задается EmptyViewTemplate значение new DataTemplate(() => new Label().Text("No Items Found")):

new VerticalStackLayout().EmptyViewTemplate(new DataTemplate(() => new Label().Text("No Items Found")));

Для этого используется метод перегрузкиFunc<object>, который используется для EmptyViewTemplate инициализацииDataTemplate.

new VerticalStackLayout().EmptyViewTemplate(() => new Label().Text("No Items Found"));

ItemsSource

Метод ItemsSource задает ItemsSource свойство для объекта ILayout.

В следующем примере задается ItemsSource значение new List<string> { "Red", "Orange", "Yellow", "Green", "Blue", "Indigo", "Violet" }:

new VerticalStackLayout().ItemsSource(new List<string> { "Red", "Orange", "Yellow", "Green", "Blue", "Indigo", "Violet" });

ItemTemplate

Метод ItemTemplate задает ItemTemplate свойство для объекта ILayout.

В следующем примере задается ItemTemplate значение new DataTemplate(() => new Label().Bind(Label.TextProperty, "."):

new VerticalStackLayout().ItemTemplate(new DataTemplate(() => new Label().Bind(Label.TextProperty, Binding.SelfPath)));

Для этого используется метод перегрузкиFunc<object>, который используется для ItemTemplate инициализацииDataTemplate.

new VerticalStackLayout().ItemTemplate(() => new Label().Bind(Label.TextProperty, Binding.SelfPath));

ItemTemplateSelector

Метод ItemTemplateSelector задает ItemTemplateSelector свойство для объекта ILayout.

В следующем примере задается ItemTemplateSelector значение new CustomDataTemplateSelector():

new VerticalStackLayout().ItemTemplateSelector(new CustomDataTemplateSelector())

class CustomDataTemplateSelector : DataTemplateSelector
{
  // ...
}