Я создаю приложение для распечатки книг, которыми я владею и хочу… у этого приложения есть база данных Sqlite. В каждой книге есть строка с идентификаторами столбцов, автором и названием. Моя проблема в том, что, когда я добавляю новую книгу, я хотел дать этому пользователю возможность ввести новое имя автора или получить его от сборщика. Средство выбора ItemsSource поступает из колонки авторов. Моя проблема в том, что у каждого автора может быть более одной книги, имена авторов отображаются несколько раз в окне выбора
Xaml
<StackLayout Orientation="Horizontal">
<Entry x:Name="authorName" HorizontalOptions="FillAndExpand" Text="{Binding Author}"
Keyboard="Text"
StyleClass="entry"/>
<StackLayout>
<Button x:Name="PickAuthor" Text="..." WidthRequest="40"
Clicked="PickAuthor_Clicked"/>
</StackLayout>
<Picker x:Name="ExistingAuthors"
Title="Select Author"
IsVisible="False"
SelectedIndexChanged="ExistingAuthors_SelectedIndexChanged">
<Picker.ItemDisplayBinding>
<Binding Path="Author" />
</Picker.ItemDisplayBinding>
</Picker>
</StackLayout>
Код позади
protected override async void OnAppearing()
{
await _connection.CreateTableAsync<WishList>();
var book = await _connection.Table<WishList>().ToListAsync();
_book = new ObservableCollection<WishList>(book);
base.OnAppearing();
}
private void PickAuthor_Clicked(object sender, EventArgs e)
{
ExistingAuthors.ItemsSource = _book.Distinct().ToList();
ExistingAuthors.Focus();
}
private void ExistingAuthors_SelectedIndexChanged(object sender, EventArgs e)
{
authorName.Text = ExistingAuthors.Items[ExistingAuthors.SelectedIndex];
}
Я не хочу, чтобы сборщик заменял дубликаты.