Reputation: 5452
I have date picker and i am populating it dynamically via a web service.
<Picker x:Name="picker" Title="Select Something" ItemsSource="{Binding}" ItemDisplayBinding="{Binding Name}"></Picker>
I set the Title
property as above but for UWP it shows up as a Label. How can i set it as a default value/prompt for UWP ?
Any help would be appreciated.
Upvotes: 3
Views: 5407
Reputation: 32775
As Digitalsa1nt said, Picker
don't have PlaceholderText
property. However, you could add this property via 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); }
}
}
Implement CustomPickerRenderer
in your uwp client project.
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;
}
}
}
}
Usage
<local:CustomPicker PlaceHolder="Picker something" x:Name="picker"/>
Upvotes: 2