Wpf中的ScrollViewer控件

Wpf中的ScrollViewer控件,wpf,wpf-controls,scrollview,Wpf,Wpf Controls,Scrollview,ScrollViewer不断增加,但我看到的状态是第一个状态,当我想看到最后一个状态时,我需要在下面滚动才能看到它,我的问题是:如何使ScrollViewer自动在下面滚动?这意味着我希望始终看到最后一个状态,而不是第一个状态 很抱歉英文不完整。请命名您的ScrollViewer,以便您可以在代码中访问它,如下所示: Status+= Environment.NewLine + "Hi"; 通过使用MVVM的方式,我可以从视图访问ViewModel,因此当视图首次加载时,我会订阅ViewMod

ScrollViewer不断增加,但我看到的状态是第一个状态,当我想看到最后一个状态时,我需要在下面滚动才能看到它,我的问题是:如何使ScrollViewer自动在下面滚动?这意味着我希望始终看到最后一个状态,而不是第一个状态


很抱歉英文不完整。

请命名您的ScrollViewer,以便您可以在代码中访问它,如下所示:

Status+= Environment.NewLine + "Hi";
通过使用MVVM的方式,我可以从视图访问ViewModel,因此当视图首次加载时,我会订阅ViewModel上的PropertyChanged事件,如下所示:

Status+= Environment.NewLine + "Hi";
MyScrollViewer.ScrollToEnd(); 
然后在ViewModelChanged回调中,我会有以下内容:

MyViewModel.PropertyChanged += ViewModelChanged;

每次ViewModel的Status属性更改时,ScrollViewer现在都会滚动到end。请记住在离开该屏幕时取消订阅MyViewModel.PropertyChanged,以避免内存泄漏。

谢谢,但在MVVM模式下如何才能做到这一点?在MVVM中,ViewModel不应该知道有关视图的详细信息,例如是否存在ScrollViewer。在这种情况下,人们普遍认为在视图中编写代码来完成此任务是可以接受的。我将调整我的答案,向您展示如何使用MVVM。这是在xaml中使用的另一种方法吗?
Status+= Environment.NewLine + "Hi";
MyScrollViewer.ScrollToEnd(); 
MyViewModel.PropertyChanged += ViewModelChanged;
private void ViewModelChanged(object sender, PropertyChangedEventArgs e)
{
    if (e.PropertyName == "Status")
        MyScrollViewer.ScrollToEnd();
}