C# 从另一个类运行方法以将列表框滚动到底

C# 从另一个类运行方法以将列表框滚动到底,c#,wpf,C#,Wpf,我想自动将WPF列表框滚动到底部。我有两个类-一个是Timer.cs,另一个是MainWindow.xaml.cs 这里是Timer.cs: using System; using System.Configuration; using System.IO; using System.Threading; using System.Threading.Tasks; namespace Importer_WPF { class Timer { public sta

我想自动将WPF列表框滚动到底部。我有两个类-一个是Timer.cs,另一个是MainWindow.xaml.cs

这里是Timer.cs:

using System;
using System.Configuration;
using System.IO;
using System.Threading;
using System.Threading.Tasks;

namespace Importer_WPF
{
    class Timer
    {
        public static readonly string MinutesExecution = ConfigurationManager.AppSettings["MinutesExecution"];
        static System.Threading.Timer timer;

        public static void StartTimer()
        {

            var startTimeSpan = TimeSpan.Zero;
            var periodTimeSpan = TimeSpan.FromMinutes(Convert.ToDouble(MinutesExecution));

            timer = new System.Threading.Timer((e) =>
            {

                Task.Delay(100).ContinueWith(_ => App.Current.Dispatcher.Invoke(() => MainWindow.Names.Add(DateTime.Now.ToString())));

                MainWindow.AutoScroll(); // Problem is here

            }, null, startTimeSpan, periodTimeSpan);

        }

        public static void StopTimer()
        {
            timer.Change(Timeout.Infinite, Timeout.Infinite);
        }
    }
}
MainWindow.xaml.cs:

using System;
using System.Collections.ObjectModel;
using System.Configuration;
using System.IO;
using System.Text.RegularExpressions;
using System.Windows;
using System.Windows.Input;

namespace Importer_WPF
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {

        public static ObservableCollection<string> Names { get; set; }
        public static bool IsCheckedYes { get; set; }

        [Obsolete]
        public MainWindow()
        {

            InitializeComponent();

        }

        public void AutoScroll()
        {
            int itemCount = ConsoleOutput.Items.Count - 1;
            if (itemCount > -1)
                ConsoleOutput.ScrollIntoView(ConsoleOutput.Items[itemCount]);
        }

    }
}
使用系统;
使用System.Collections.ObjectModel;
使用系统配置;
使用System.IO;
使用System.Text.RegularExpressions;
使用System.Windows;
使用System.Windows.Input;
名称空间导入程序
{
/// 
///MainWindow.xaml的交互逻辑
/// 
公共部分类主窗口:窗口
{
公共静态ObservableCollection名称{get;set;}
公共静态布尔值为{get;set;}
[过时]
公共主窗口()
{
初始化组件();
}
public void AutoScroll()
{
int itemCount=ConsoleOutput.Items.Count-1;
如果(itemCount>-1)
ConsoleOutput.ScrollIntoView(ConsoleOutput.Items[itemCount]);
}
}
}
调试器正在发出以下消息:

严重性代码说明项目文件行抑制状态 错误CS0120非静态字段需要对象引用, 方法或属性“MainWindow.AutoScroll()”


有没有提示如何编辑代码结构,使其不会产生错误?

您需要获取内存中mainwindow类实例的引用

       ((MainWindow)Application.Current.MainWindow).AutoScroll();