Однако, возможно ли это благодаря использованию события 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"/>
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));
}
}
Это происходит на долю секунды, а затем мгновенно возвращается к выбору индекса 0. Мне действительно трудно понять, почему.
Подробнее здесь: https://stackoverflow.com/questions/782 ... -the-first
Мобильная версия