C# 在WPF应用程序中创建新类/文件管理

C# 在WPF应用程序中创建新类/文件管理,c#,wpf,xaml,C#,Wpf,Xaml,我是WPF应用程序开发新手 对于我当前的项目,我一直在MainWindow.xaml.cs中编写我的所有代码,但它越来越长(目前有370行) 我的猜测是,分离代码的最佳方法是创建单独的类,在MainWindow.xaml.cs中创建所述类的实例,并从中访问它们的函数 下面是一个例子: namespace Outrun.Source { public class Saver : MainWindow { public void SaveTaskList()

我是WPF应用程序开发新手

对于我当前的项目,我一直在MainWindow.xaml.cs中编写我的所有代码,但它越来越长(目前有370行)

我的猜测是,分离代码的最佳方法是创建单独的类,在MainWindow.xaml.cs中创建所述类的实例,并从中访问它们的函数

下面是一个例子:

namespace Outrun.Source
{
    public class Saver : MainWindow
    {
        public void SaveTaskList()
        {
            //Put all tasks in a list of strings.
            List<string> tasks = new List<string>();

            for (int i = 0; i < taskListBox.Items.Count; i++)
            {
                tasks.Add(taskListBox.Items[i].ToString());
            }

            //Write all tasks to a .txt file.
            string path = AppDomain.CurrentDomain.BaseDirectory + "OutrunSaveFile.txt";

            for (int i = 0; i < tasks.Count; i++)
            {
                File.WriteAllLines(path, tasks);
            }
        }
    }
}
namespace-Outrun.Source
{
公共类保存程序:主窗口
{
public void SaveTaskList()
{
//将所有任务放入字符串列表中。
列表任务=新列表();
对于(int i=0;i
我遇到的问题是如何访问MainWindow.xaml.cs中使用的函数和类。目前我可以访问SaveTaskList()函数中的ListBox元素,因为我从MainWindow继承


这是分离c代码的正确方法吗?如果不是,那么什么是分离c代码的最好方法,这样我的MainWindow.xaml.cs就不会得到太长的wwwaaayyyy?

WPF应用程序的最好方法是使用MVVM模式。有很多教程,所以你应该看看


使用此模式,您的视图模型包含交互和表示所需的数据和命令,视图(大多数情况下)只是一个纯XAML,您可以使用数据绑定将它们连接起来。在这种情况下,您不需要访问ListBox元素,只需将数据放在ObservableCollection中,让数据绑定完成它的工作。

几乎每个wpf团队都使用一种称为mvvm的模式。您可以使用绑定将viewmodel中的属性松散地连接到视图中的属性。viewmodel通常具有其创建的子viewmodel。然后,它们实例化连接到数据库的类以进行数据库访问。在这些层中,您还可以看到通过ioc容器实例化或解析的类、工厂等。所以是的。您应该使用单独的类和技术,这些技术不涉及直接引用ui片段并将它们用作数据存储。我还将尝试使我的类不引用UI的各个部分,这样我就可以避免从MainWindow继承。