C# UIPickerView的自定义渲染器
可以在XAML中定义的位置使C# UIPickerView的自定义渲染器,c#,xamarin,xamarin.forms,custom-renderer,C#,Xamarin,Xamarin.forms,Custom Renderer,可以在XAML中定义的位置使UIPickerView始终可见 此控件的标准行为仅在单击Title属性时显示绑定列表,然后从屏幕底部(iOS)或弹出窗口(Android)显示包含列表作为内容的小部件 我想让它从一开始就在定义它的地方可见(而不是在小部件中)。在picker对象中没有类似于Position的东西 protected override void OnElementChanged(ElementChangedEventArgs<Picker> e) {
UIPickerView
始终可见
此控件的标准行为仅在单击Title
属性时显示绑定列表,然后从屏幕底部(iOS)或弹出窗口(Android)显示包含列表作为内容的小部件
我想让它从一开始就在定义它的地方可见(而不是在小部件中)。在picker
对象中没有类似于Position
的东西
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;
}
}
protected override void OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
列表名称=新列表()
{
“测试”,
“测试2”
};
if(控件!=null)
{
var picker=(UIPickerView)this.Control.InputView;
picker.ShowSelectionIndicator=true;
}
}
我解决了这个问题,并在上提供了一个示例项目存储库
示例代码:
<local:CustomObjectPicker
ItemsSource="{Binding ObjectList}"
SelectedItem="{Binding SelectedItem}"
IsTransparent="true"
TextColor="Blue"
/>
它基于CustomRenderer
,仅在iOS上工作,因为UIPickerView
是一个本机iOS控件