你好,
SelectedIndex 在 Picker 初始化完成之前不起作用,但在初始化完成后它可以正常工作。
这在 Picker 文档的 Respond to item selection 中进行了说明。
A Picker can be initialized to display a specific item by setting the SelectedIndex property. However, the SelectedIndex property must be set after initializing the Items collection.
在 Maui 中,您可以在页面中使用 OnHandlerchanged
方法来确保 Picker 已初始化。
protected override void OnHandlerChanged()
{
base.OnHandlerChanged();
picker.SelectedIndex = 0;
}
更新:
您可以使用 x:Name
特性在 xaml 中标记选取器的名称,并直接在代码隐藏中使用此名称来更改选取器的属性。
请参考以下示例和文档。
在 Xaml 中,您可以为不同的选取器设置不同的名称,例如:
<Picker x:Name="picker1"
Title="Select a monkey">
<Picker.ItemsSource>
<x:Array Type="{x:Type x:String}">
<x:String>Baboon</x:String>
<x:String>Capuchin Monkey</x:String>
</x:Array>
</Picker.ItemsSource>
</Picker>
<Picker x:Name="picker2"
Title="Select a monkey">
<Picker.ItemsSource>
<x:Array Type="{x:Type x:String}">
<x:String>Howler Monkey</x:String>
<x:String>Japanese Macaque</x:String>
</x:Array>
</Picker.ItemsSource>
</Picker>
后续,如果要更改 picker1 的属性,可以直接按 name 进行修改。
protected override void OnHandlerChanged()
{
base.OnHandlerChanged();
picker1.SelectedIndex = 0;
}
如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。 注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。