Проблема с переносом текста WPF VirtualizingStackPanel после сортировкиC#

Место общения программистов C#
Ответить
Anonymous
 Проблема с переносом текста WPF VirtualizingStackPanel после сортировки

Сообщение Anonymous »

Я новичок в WPF и написал эту программу, чтобы помочь в организации и каталогизации моих книг. Я использовал панель виртуализации, которая отлично отображается, пока я не отсортирую книги.
Вот вид предварительной сортировки: предварительно отсортированный список книг
Вот просмотреть сортировку сообщений: отсортированный список книг
Вот XAML для DataTemplate: а вот функция, которую я использовал для сортировки списка.

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

public async Task FilterAndSortBooks()
{
var result = await Task.Run(() =>
{
IEnumerable filtered = Books;

// Apply filter based on the selected filter option
if (!string.IsNullOrWhiteSpace(SearchText))
{
filtered = SelectedFilter switch
{
"Title" => filtered.Where(book => book.Title.Contains(SearchText, StringComparison.OrdinalIgnoreCase)),
"Author" => filtered.Where(book => book.Author.Contains(SearchText, StringComparison.OrdinalIgnoreCase)),
"Release Year" => filtered.Where(book => book.Year.HasValue && book.Year.Value.ToString("yyyy").Contains(SearchText, StringComparison.OrdinalIgnoreCase)),
_ => filtered
};
}

// Apply sorting based on the selected sort option
filtered = SelectedSortOption switch
{
"Title" => filtered.OrderBy(book => book.Title),
"Author" => filtered.OrderBy(book => book.Author),
"Release Year" => filtered.OrderBy(book => book.Year),
_ => filtered
};

return filtered.ToList();
});

// Update FilteredBooks on the UI thread
Application.Current.Dispatcher.Invoke(() =>
{
FilteredBooks.Clear();
foreach (var book in result)
{
FilteredBooks.Add(book);
}
});
}
Я хочу, чтобы отсортированное представление соответствовало предварительно отсортированному представлению, но не могу понять, почему оно меняется. Любая помощь будет полезна.

Подробнее здесь: https://stackoverflow.com/questions/791 ... after-sort
Ответить

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

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

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

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

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