Почему средство выбора MAUI дважды запускает событие OnSelectionChanged, причем первое событие — это мой выбор, а второеAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Почему средство выбора MAUI дважды запускает событие OnSelectionChanged, причем первое событие — это мой выбор, а второе

Сообщение Anonymous »

Используя .NET8 с MAUI на устройстве Android 13, я пытаюсь реализовать средство выбора с ItemSource для сложного объекта.
Однако, возможно ли это благодаря использованию события SelectionIndexChanged, привязки SelectedIndex или привязки SelectedItem, реакция на новый выбор всегда запускает событие дважды, причем первое событие является правильным, т. е. выбор действительно тот, который выбран через пользовательский интерфейс, и второе событие всегда выбирает индекс 0 ItemSource. Это фактически делает средство выбора бесполезным или, скорее, чрезвычайно лояльным к первому элементу.

Код: Выделить всё

ItemsSource="{Binding UserConfigs}"
SelectedItem="{Binding SelectedUserConfiguration}"
Title="{Binding CurrentUserConfig.ConfigName}"
TitleColor="{DynamicResource PrimaryTextColor}"
ItemDisplayBinding="{Binding ConfigName}"
IsEnabled="{Binding ConnectedDevice.Data.LockStatus, Converter={StaticResource LockStatusConverter}}"
Grid.Column="1"
Margin="10,0,0,0"
FontSize="Small"
HorizontalOptions="FillAndExpand"
HorizontalTextAlignment="Center"/>
Picker вложен в Grid, сам вложен в StackLayout, а сам вложен в ContentPage с использованием навигации оболочки.
UserConfigs — это ObservableCollection
SelectedUserConfiguration — это MyCustomObject

Код: Выделить всё

/// 
/// Binded property of the currently selected user config the user whishes to set the XXXX to.
/// 
public MyCustomObject SelectedUserConfiguration
{
get => m_oSelectedUserConfig;
set
{
m_oSelectedUserConfig = value;
OnPropertyChanged(nameof(SelectedUserConfiguration));
}
}
При всем этом я ожидал, что код даст те же результаты, что и его предшественник Xamarin, и выбор объекта из средства выбора приведет к обновлению SelectedUserConfiguration до соответствующего значения.
Это происходит на долю секунды, а затем мгновенно возвращается к выбору индекса 0. Мне действительно трудно понять, почему.

Подробнее здесь: https://stackoverflow.com/questions/782 ... -the-first
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»