XAML绑定到标签

时间:2016-09-14 11:31:25

标签: c# xaml xamarin.forms

在Xamarin.Forms中,我有一个显示数据库项的页面。

public ListItemsPage()
{
    DatabaseHelper tmpDBHelper = new DatabaseHelper();
    InitializeComponent();

    listView.ItemsSource = tmpDBHelper.GetItems();
}

这些项目有4列:Id为Guid,MandantId为Guid,UpdateAt为DateTime,Url为String

现在我想将它们绑定在我的XAML中。

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Portable.Pages.ListItemsPage"
             Title="DbItemExample">
  <ListView x:Name="listView">
    <ListView.ItemTemplate>
      <DataTemplate>
        <ViewCell>
          <ViewCell.View>
            <StackLayout Padding="20,0,20,0"
                         Orientation="Horizontal"
                         HorizontalOptions="FillAndExpand">

              <Label Text="{Binding Id}"
                     HorizontalOptions="StartAndExpand" />
              <Label Text="{Binding Url}"
                                   HorizontalOptions="StartAndExpand" />
              <Label Text="{Binding MandantId}"
                                   HorizontalOptions="StartAndExpand" />
              <Label Text="{Binding UpdateAt}"
                                   HorizontalOptions="StartAndExpand" />
            </StackLayout>
          </ViewCell.View>
        </ViewCell>
      </DataTemplate>
    </ListView.ItemTemplate>
  </ListView>
</ContentPage>

如果这有帮助,这是我的模型,其中生成了db表。

class DbItem
{
    [PrimaryKey]
    public Guid Id { get; set; }
    public Guid MandantId { get; set; }
    public string Url { get; set; }
    public DateTime UpdateAt { get; set; }
}

它只显示Url和UpdateAt。那是为什么?

1 个答案:

答案 0 :(得分:1)

我修好了。

与Egor Gromadskiy的建议一样,我实现了一个EmptyConverter(Binding errors in Xamarin Forms)。似乎Xamarin无法自动将Guid转换为字符串。

只需将方法value中的value.ToString()更改为Convert()即可。