Почему этот UWP ComboBox может быть пустым после инициализации, но отлично работает для выбора?
У меня есть ComboBox, как это
<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}" />
Однако после инициализации поле со списком остается пустым. Это на самом деле работает нормально после этого. Я могу выбрать и показать выбранный элемент, как ожидалось. Это просто первый взгляд не работает. Тем не менее, я уже инициализировал MaxXXAge и конвертер был запущен. Вот группа
public IReadOnlyList<MaxXXAgeMembers> MaxXXAgeMemberGroup { get { return MaxXXAgeMembers.Options; } }
И это определение для 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);
}
}
// Добавил Overriding Equals позже
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();
}
Конвертер такой
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;
}
}
Любая идея?