选取器没有显示项目

问题描述:

在xamarin表单中我是新的,我有一个选择器并用项目填充它,但它不能显示items.here是我的代码。 选择器在XAML选取器没有显示项目

<StackLayout Margin="1"> 
        <Picker x:Name="curr_picker" Title="select currency"> 
        </Picker> 
        </StackLayout> 

我如何填充它在CS

curr_picker.Items.Add("UGX"); 
curr_picker.Items.Add("USD"); 
curr_picker.Items.Add("JPY"); 

这里是我完整的代码 XAML

ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
      x:Class="FX2.ForexRates" 
      Title="Forex Rates" 
      > 
    <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition Height=".3*" /> 
      <RowDefinition Height=".7*" /> 
     </Grid.RowDefinitions> 
     <StackLayout Orientation="Vertical"> 
      <!--Frame 1 --> 
      <Frame Margin="5" HasShadow="True" BackgroundColor="White" > 
       <Frame.OutlineColor> 
        <OnPlatform x:TypeArguments="Color" Android="Gray" iOS="#DCDCDC" /> 
       </Frame.OutlineColor> 
       <StackLayout Orientation="Vertical"> 
        <Image Source="searchbox.png" HorizontalOptions="EndAndExpand"/> 
        <Image Source="flag_uganda.png" HorizontalOptions="StartAndExpand"/> 
       </StackLayout> 
      </Frame> 

      <Frame Margin="5" HasShadow="True" BackgroundColor="White" > 
       <Frame.OutlineColor> 
        <OnPlatform x:TypeArguments="Color" Android="Gray" iOS="#DCDCDC" /> 
       </Frame.OutlineColor> 
       <StackLayout Orientation="Vertical"> 
        <Label Text="UGANDA" HorizontalOptions="Center" TextColor="#5dade2"/> 
        <Image Source="searchbox.png" HorizontalOptions="EndAndExpand"/> 
        <Label Text="Compare With" HorizontalOptions="Center" TextColor="#5dade2"/> 
        <StackLayout Margin="1"> 
        <Picker x:Name="curr_picker" Title="select currency"> 
        </Picker> 
        </StackLayout> 
        <Picker x:Name="option_picker" Title="BUY or SELL"> 
        </Picker> 
        <Button Text="VIEW RATES" BackgroundColor="#0711a7" HorizontalOptions="FillAndExpand" TextColor="White" HeightRequest="65" Clicked="Button_Clicked"/> 
       </StackLayout> 
      </Frame> 

     </StackLayout> 


    </Grid> 
</ContentPage> 

CS

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

using Xamarin.Forms; 
using Xamarin.Forms.Xaml; 

namespace FX2 
{ 
    [XamlCompilation(XamlCompilationOptions.Compile)] 
    public partial class ForexRates : ContentPage 
    { 
     public ForexRates() 
     { 
      InitializeComponent(); 

      curr_picker.Items.Add("UGX"); 
      curr_picker.Items.Add("USD"); 
      curr_picker.Items.Add("JPY"); 

      option_picker.Items.Add("BUY"); 
      option_picker.Items.Add("SELL"); 


     } 

     private void Button_Clicked(object sender, EventArgs e) 
     { 
     //await Navigation.PushAsync(new MainActivity()); 
     } 

    } 
} 

docs

然而,选择器不显示任何数据,当它第一次显示。取而代之的是,它的名称属性的值被示出为在iOS和Android平台的占位符:

当选择器获得焦点,其数据被显示并且用户可以选择一个项目:

+0

日Thnx @杰森,但我从来没有获得重点,项目根本不显示。 –

如果您使用的是最新的Xamarin.Forms,比如版本2.5或更高版本,您可能应该使用ItemsSource而不是Items来进行数据绑定。在XAML它看起来就像这样:

<Picker x:Name="picker"> 
    <Picker.ItemsSource> 
    <x:Array Type="{x:Type x:String}"> 
     <x:String>Baboon</x:String> 
     <x:String>Capuchin Monkey</x:String> 
     <x:String>Blue Monkey</x:String> 
    </x:Array> 
    </Picker.ItemsSource> 
</Picker> 

在CS这样的:

var monkeyList = new List<string>(); 
monkeyList.Add("Baboon"); 
monkeyList.Add("Capuchin Monkey"); 
monkeyList.Add("Blue Monkey"); 

picker.ItemsSource = monkeyList; 

而是简单的字符串,你也可以使用复杂的类型,检查多在这里: https://developer.xamarin.com/guides/xamarin-forms/user-interface/picker/populating-itemssource/