在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。那是为什么?
答案 0 :(得分:1)
我修好了。
与Egor Gromadskiy的建议一样,我实现了一个EmptyConverter(Binding errors in Xamarin Forms)。似乎Xamarin无法自动将Guid转换为字符串。
只需将方法value
中的value.ToString()
更改为Convert()
即可。