2016-10-03 2 views
2

Я хочу создать привязку к коллекции строк, определенных внутри XAML.Определить коллекцию внутри XAML

В WPF я мог бы создать ArrayList в качестве ресурса с ключом, готовым к использованию в качестве источника привязки (используя StaticResource).

Возможно ли это в форме Xamarin?

EDIT: Я пытался с этим XAML с решением, предложенным @Stephane Delcroix, но я получаю необработанное исключение:

<?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

Что управления и какие свойства управления вы пытаетесь связать свой список? Я знаю, как это сделать для 'Picker.Items', но не уверен в' ListView.ItemSource', например. – hvaughan3

+0

Я хотел бы использовать ItemsSource ListView – SuperJMN

+1

Вы все еще можете работать с примером 'Picker' [здесь] (https://forums.xamarin.com/discussion/24023/adding-a-picker-in -xaml). – hvaughan3

ответ

2

Вы можете использовать встроенный в 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"

+0

Я пробовал, но в Android я получаю Unhandled Exception. Пожалуйста, см. Мое редактирование в OP. – SuperJMN

+0

'String' не определен в' System.Runtime', но в 'mscorlib', если я не ошибаюсь –

+0

Кроме того, изменение вопросов обычно делает ответ несущественным, поэтому, пожалуйста, избегайте этого. –

Смежные вопросы