c# - Xamarin.Forms 选择器默认值

标签 c# xamarin uwp xamarin.forms picker

我有日期选择器,我正在通过网络服务动态填充它。

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

我如上所述设置 Title 属性,但对于 UWP,它显示为标签。如何将其设置为 UWP 的默认值/提示?

如有任何帮助,我们将不胜感激。

最佳答案

正如 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

关于c# - Xamarin.Forms 选择器默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45301363/

相关文章:

c# - 使用 C# 进行内核级编程

ios - 如何设置 Xamarin iOS UITableView 重新排序图标颜色

c# - ContentDialog showAsync() 给出错误 : no definition for getAwaiter

javascript - 如何替换当前打开的文件?

c# - MenuItemCollection 与 List<MenuItem>

c# - 使用 SqlParameter 传递多个参数

c# - 本地网络上的 WCF 初始化挂起 20 秒

ios - 在 Xamarin.iOS 中创建分组 UITableview

azure - 无法在 azure 通知中心上传 '.p12' 证书

c# - UWP 中的 httpclient 问题