2017-07-25 7 views
1

私は日付ピッカーを持っており、私はそれをWebサービスを介して動的に取り込んでいます。 Xamarin.Forms Pickerデフォルト値

<Picker x:Name="picker" Title="Select Something" ItemsSource="{Binding}" ItemDisplayBinding="{Binding Name}"></Picker> 

は、私は上記のよう Titleプロパティを設定しますがUWPのためには、ラベルとして表示されます。 UWPのデフォルト値/プロンプトとしてどのように設定できますか?

ご協力いただければ幸いです。

+1

使い方、あなたはANを持っている必要がありますソースバインディング内の他のアイテムと区別できる余分なアイテムr sourceをデフォルトの選択インデックスとして使用します。 – Digitalsa1nt

答えて

0

Digitalsa1ntが述べたように、PickerにはPlaceholderTextというプロパティがありません。ただし、custom renderer経由でこのプロパティを追加できます。

CustomPicker.cs

public class CustomPicker : Picker 
{ 
    public static readonly BindableProperty PlaceHolderProperty = BindableProperty.Create(
propertyName: "PlaceHolder", 
eturnType: typeof(string), 
declaringType: typeof(CustomPicker), 
defaultValue: default(string)); 

    public string PlaceHolder 
    { 
     get { return (string)GetValue(PlaceHolderProperty); } 
     set { SetValue(PlaceHolderProperty, value); } 
    } 

} 

あなたのUWPクライアントプロジェクトでCustomPickerRendererを実装します。

CustomPickerRenderer.cs

[assembly: ExportRenderer(typeof(CustomPicker), typeof(CustomPickerRenderer))] 

namespace XamarinPickerDefaultValueTest.UWP 
{ 
    public class CustomPickerRenderer : PickerRenderer 
    { 
     protected override void OnElementChanged(ElementChangedEventArgs<Picker> e) 
     { 
      base.OnElementChanged(e); 
      var element = Element as CustomPicker; 

      if (Control != null) 
      { 
       Control.PlaceholderText = element.PlaceHolder; 
      } 
     } 

    } 
} 

ピッカーは、 'プレースホルダ' 機能のいずれかの種類を持っていない

<local:CustomPicker PlaceHolder="Picker something" x:Name="picker"/> 

enter image description here