绑定到静态列表和属性xamarin表单

时间:2017-04-11 09:05:47

标签: c# xaml xamarin

我正在制作便携式Xamarin项目。我在Stash类中有以下列表:

public class Stash
{      
    public static List<Group> Groups { get; set; }
}

和一个班组:

public class Group
{
    [JsonProperty(PropertyName ="Name")]
    public string Name { get; set; }
    [Newtonsoft.Json.JsonProperty("Id")]
    public string GroupId { get; set; }
}

在XAML的另一个页面中,我想绑定到静态列表。我有一个ListView,我想绑定到组列表:

<ListView ItemsSource="{Binding Source={x:Static local:Stash.Groups}}"
    IsGroupingEnabled="true">
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextCell Text="{Binding Name}" TextColor="Black"
                Detail="{Binding GroupId}" DetailColor="Aqua">
            </TextCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

我在XAML中定义了本地的命名空间:

xmlns:local="clr-namespace:Namespace"

我的列表是从Sql Azure数据库填充的,所以它不是空的,有人能告诉我我的代码有什么问题吗?我似乎无法在我的屏幕上显示列表,所有显示的是这个句子Namespace.Group。

2 个答案:

答案 0 :(得分:1)

以下绑定不正确。你不需要

<ListView ItemsSource="{Binding Source={x:Static local:Stash.Groups}}"

您应该将其更改为

<ListView ItemsSource="{Binding {x:Static local:Stash.Groups}"

Databinding Xamarin ListView

答案 1 :(得分:0)

它正在工作,我刚刚删除了IsGroupingEnabled =“true”并且它正常工作

<ListView ItemsSource="{Binding Source={x:Static local:Stash.Groups}}">
<ListView.ItemTemplate>
    <DataTemplate>
        <TextCell Text="{Binding Name}" TextColor="Black"
            Detail="{Binding GroupId}" DetailColor="Aqua">
        </TextCell>
    </DataTemplate>
</ListView.ItemTemplate>