表单可以在XAML的数据上下文中定义数据吗

表单可以在XAML的数据上下文中定义数据吗,xaml,mvvm,xamarin.forms,Xaml,Mvvm,Xamarin.forms,在我的Xamarin表单应用程序中,我有一个显示数据列表的自定义控件。数据在IEnumerable ViewModel中定义。通常视图模型是在C#中动态定义的,但我想知道是否可以在XAML中定义它?例如,在我的XAML中,我有: <?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://sc

在我的Xamarin表单应用程序中,我有一个显示数据列表的自定义控件。数据在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”是“ListViewRow”的IEnumerable。是否可以像我在“ListViewRow”行中尝试的那样用XAML填充此视图模型?非常感谢。

我不确定您是否可以完全按照您所做的那样,实例化iTen并将其添加到自定义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>