我在 .NET MAUI 中遇到 Pickers 和 DatePickers 问题。我使用选择器来显示可供用户选择的选项,这些选项是我从 API 获取的。但是,如果我使用键盘输入文本,选择器会检测文本输入并允许在内部写入文本。如果有意义的话,我需要我的选择器是“只读”的。用户应该只能选择选项而不能在其中写入。这是一个例子:
这是代码。我认为这不是很相关(两个选择器都存在问题)
<StackLayout Grid.Row="0">
<!-- Centro de trabajo y Picker -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Text="Centro de trabajo" VerticalOptions="Center"/>
<Frame Grid.Column="2" BackgroundColor="{StaticResource Secondary}" Padding="15,0" CornerRadius="10" BorderColor="Black">
<Picker Title="Selecciona un centro de trabajo"
x:Name="CentroTrabajoPicker"
HorizontalOptions="End"
BackgroundColor="Transparent"
TextColor="Black"/>
</Frame>
</Grid>
<!-- Fecha y DatePicker -->
<Grid Margin="0,20,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Text="Fecha" VerticalOptions="Center"/>
<Frame Grid.Column="2" BackgroundColor="{StaticResource Secondary}" Padding="15,0" CornerRadius="10" BorderColor="Black" >
<DatePicker Date="{x:Static sys:DateTime.Now}"
x:Name="FechaPickerMenu"
Format="dd/MM/yyyy"
BackgroundColor="Transparent"
HorizontalOptions="End"/>
</Frame>
</Grid>
</StackLayout>
这是 GitHub 上的已知问题,您可以跟进此线程Android Picker 问题(用户可以输入文本)。
这里是解决方法,您可以参考禁用Picker的按键输入。