¿Por qué este ComboBox UWP puede estar en blanco después de la inicialización pero funciona bien para la selección?
Tengo un ComboBox como este
<ComboBox
Grid.Column="1"
Padding="5,0,0,0"
DisplayMemberPath="Description"
SelectedItem="{Binding MaxXXAge, Mode=TwoWay, Converter={StaticResource MaxXXAgeToMaxXXAgeMemberConverter}}"
ItemsSource="{Binding ElementName=SettingsXXScrollViewer, Path=DataContext.MaxXXAgeMemberGroup, Mode=OneWay}" />
Sin embargo, después de la inicialización, el cuadro combinado está en blanco. En realidad funciona bien después de esto. Puedo seleccionar y mostrar el elemento seleccionado como se esperaba. Es solo que la primera mirada no funciona. Sin embargo, ya inicialicé MaxXXAge y se activó el convertidor. Aqui esta el grupo
public IReadOnlyList<MaxXXAgeMembers> MaxXXAgeMemberGroup { get { return MaxXXAgeMembers.Options; } }
Y esta es la definición de MaxXXAgeMembers
public class MaxXXAgeMembers
{
public MaxXXAge MaxXXAge { get; private set; }
public string Description { get; private set; }
public static readonly IReadOnlyList<MaxXXAgeMembers> Options = new ReadOnlyCollection<MaxXXAgeMembers>(new[]
{
new MaxXXAgeMembers { MaxXXAge = MaxXXAge.OneDay, Description = Strings.SettingSync_OneDay},
.......
});
public static MaxXXAgeMembers FromMaxXXAge(MaxXXAge maxXXAge)
{
return Options.First(option => option.MaxXXAge == maxXXAge);
}
}
// Se agregaron los Iguales de anulación más tarde
public override bool Equals(object obj)
{
if (obj == null || !(obj is MaxEmailAgeMembers))
return false;
return ((MaxEmailAgeMembers)obj).Description.Equals(this.Description);
}
public override int GetHashCode()
{
return this.Description.GetHashCode();
}
El convertidor es así
public sealed class MaxEmailAgeToMaxEmailAgeMemberConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
return WPSettingsEmailViewModel.MaxEmailAgeMembers.FromMaxEmailAge((MaxEmailAge)value);
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
return ((WPSettingsEmailViewModel.MaxEmailAgeMembers)value).MaxEmailAge;
}
}
¿Alguna idea?