Как мне добиться поведения, подобного «KeepLastItemInView», в WPF ListView?C#

Место общения программистов C#
Ответить
Anonymous
 Как мне добиться поведения, подобного «KeepLastItemInView», в WPF ListView?

Сообщение Anonymous »

Я портирую приложение из MAUI в WPF, это приложение для чата, поэтому я создал этот CollectionView в MAUI, который содержит все сообщения от всех пользователей в одном чате и, как и в реальном приложении чата, расположение сообщений сверху вниз, самое последнее сообщение находится внизу, и я хотел воспроизвести это поведение, используя просто: ItemsUpdatingScrollMode="KeepLastItemInView".
В версии MAUI я просто получаю доступ к чату, в который хочу написать, и он автоматически прокручивается вниз, чтобы показать последнее сообщение, или если пользователь пишет сообщение в поле и нажимает «Отправить», представление автоматически прокручивается вниз и фокусируется на последнем отправленном сообщении.
Дело в том, что теперь мне приходится воспроизводить то же самое в WPF, но, очевидно, в WPF нет тега CollectionView или даже ItemsUpdatingScrollMode для ListView.
Я пробовал все, чтобы иметь такое поведение, я пытался создать собственное поведение + прикрепленное свойство, но это не сработало, я пытался обработать это поведение непосредственно из ViewModel и попытаться использовать методы в сообщениях ObservableCollection для прокрутки вниз, но это не сработало, я пытался обработать это из кода программной части, чтобы автоматически прокручивать пользовательский интерфейс, но все же не сделал работает...
Теперь, когда я захожу в чат, пользовательский интерфейс загружает начало чата, поэтому, если я хочу увидеть последнее сообщение, мне нужно вручную прокрутить вниз, и это не лучший вариант...
Кроме того, если я нахожусь в самом низу, чтобы видеть последнее сообщение, и пишу что-то и нажимаю «Отправить», сообщение снова уйдет под окно и станет скрытым за окном редактора, поэтому мне придется прокрутить вниз, чтобы увидеть это...
Как это сделать?
Вот что у меня есть в моем XAML: Если вам нужна дополнительная информация о коде, не стесняйтесь комментировать, и я отредактирую вопрос, добавив больше кода, на данный момент я думаю, что XAML ListView достаточно, так как в ViewModel или коде программной части нет ничего об автоматической прокрутке вниз.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... f-listview
Ответить

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

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

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

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

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