我想创建一个绑定到XAML中定义的字符串集合。
在WPF中,我可以创建一个ArrayList
作为带有密钥的资源,可以用作绑定源(使用StaticResource)。
这可能是Xamarin Forms吗?
编辑:我已经尝试过使用@Stephane Delcroix提出的解决方案的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"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
x:Class="ReferenceApp.Views.GamesPage"
Title="Games">
<ContentPage.Resources>
<x:Array Type="{x:Type sys:String}" x:Key="array">
<x:String>Hello</x:String>
<x:String>World</x:String>
</x:Array>
</ContentPage.Resources>
<Grid />
</ContentPage>
但是,如果我删除<x:Array >... </x:Array>
我做错了什么?
答案 0 :(得分:4)
您可以使用内置的x:Array
<x:Array Type="{x:Type sys:String}" x:Key="array">
<x:String>Hello</x:String>
<x:String>World</x:String>
</x:Array>
将sys
定义为xmlns:sys="clr-namespace:System;assembly=mscorlib"
或您喜欢的任何收藏品,例如List
<scg:List x:TypeArguments="{x:Type sys:String}" x:Key="genericList">
<x:String>Hello</x:String>
<x:String>World</x:String>
</scg:List>
如前所述定义sys
,scg
为xmlns:scg="clr-namespace:System.Collections.Generic;assembly=mscorlib"
答案 1 :(得分:2)
我发现您使用的是 XF标准扩展程序。您的错误似乎在Type="{x:Type sys:String}"
,而不是 sys:String 您应该写 x:String ,它出现在常见的 xmlns:x 强>
在此示例中,我使用字符串
填充列表视图<ListView Margin="10">
<ListView.ItemsSource>
<x:Array Type="{x:Type x:String}">
<x:String>Hello</x:String>
<x:String>World</x:String>
</x:Array>
</ListView.ItemsSource>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Label Text="{Binding}" />
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>