Xamarin.Forms вы можете определить данные в контексте данных в XAML - PullRequest
0 голосов
/ 14 мая 2018

В моем приложении Xamarin Forms у меня есть пользовательский элемент управления, который отображает список данных. Данные определены в IEnumerable ViewModel. Обычно модель представления определяется динамически в C #, но мне было интересно, можно ли было определить ее в XAML? Например, в моем XAML у меня есть это:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         x:Class="WrhseCtrls.Views.CollapsibleGridPage"
           xmlns:local="clr-namespace:WrhseCtrls;assembly=WrhseCtrls">
<ContentPage.Content>     
    <local:Views.CollapsibleGridView Title="No View Model">
        <local:Views.CollapsibleGridView.BindingContext>
            <local:ViewModels.ListViewItem/>
        </local:Views.CollapsibleGridView.BindingContext>

        <local:ViewModels.ListViewRow Caption="Row" Text="Text"  Hidden="False" Height="30"></local:ViewModels.ListViewRow>

    </local:Views.CollapsibleGridView>
</ContentPage.Content>

Модель представления «ListViewItem» представляет собой IEnumerable из «ListViewRow». Можно ли заполнить эту модель представления в XAML, как я пытался сделать в строке «ListViewRow»? Большое спасибо.

1 Ответ

0 голосов
/ 14 мая 2018

Я не уверен, что вы можете делать точно так же, как вы, создавая экземпляры и добавляя их в пользовательский класс IEnumerable. Но если я не ошибаюсь, вы можете использовать это так:

<ContentPage.Content>     
    <local:Views.CollapsibleGridView Title="No View Model">
        <local:Views.CollapsibleGridView.BindingContext>
            <x:Array Type="{x:Type local:ViewModels.ListViewRow}">
                <local:ViewModels.ListViewRow Caption="Row 1" Text="Text 1"  Hidden="False" Height="30"></local:ViewModels.ListViewRow>
                <local:ViewModels.ListViewRow Caption="Row 2" Text="Text 2"  Hidden="False" Height="30"></local:ViewModels.ListViewRow>
                <local:ViewModels.ListViewRow Caption="Row 3" Text="Text 3"  Hidden="False" Height="30"></local:ViewModels.ListViewRow>
            </x:Array>
        </local:Views.CollapsibleGridView.BindingContext>
    </local:Views.CollapsibleGridView>
</ContentPage.Content>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...