UIPickerView的CustomRenderer

时间:2016-07-06 08:52:09

标签: c# xamarin xamarin.forms custom-renderer

可以使UIPickerView始终在XAML中定义的位置可见吗?

此控件的标准行为仅在我们单击Title属性时显示绑定列表,然后从屏幕底部(iOS)或弹出窗口(Android)显示包含列表的窗口小部件内容。

我想从开始和定义它的地方(而不是在小部件中)看到它。 Position对象中没有picker之类的内容。

protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
    {
        base.OnElementChanged(e);

        List<string> names = new List<string>()
        {
            "test",
            "test 2"
        };

        if (Control != null)
        {
            var picker = (UIPickerView)this.Control.InputView;
            picker.ShowSelectionIndicator = true;
        }
    }

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,并在GitHub上提供了一个示例项目存储库。

示例代码:

<local:CustomObjectPicker
            ItemsSource="{Binding ObjectList}"
            SelectedItem="{Binding SelectedItem}"
            IsTransparent="true"
            TextColor="Blue"
            />

它基于CustomRenderer,仅适用于iOS,因为UIPickerView是iOS原生控件。