【问题标题】:Creating partial class for wpf functions and events为 wpf 函数和事件创建部分类
【发布时间】:2014-08-04 14:37:30
【问题描述】:

我有一个 WPF 程序,它的 MainWindows.xaml.cs 有很多函数和事件。我想让它更具可读性,所以我将一些函数和事件移到了一个名为“partialClassMainWindow.cs”的单独类中。我将所有按钮事件移至它。现在,当我单击一个按钮时,它必须转到 partialClassMainWindow 中的 button_Click 函数,但在 MainWindows.xaml.cs 中创建了一个新函数。

如何预防?

例如考虑这个简单的程序:

MainWindow.xaml.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication3
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        //moved to partialClassMainWindow:
        //private void button1_Click(object sender, RoutedEventArgs e)
        //{

        //}
    }
}

partialClassMainWindow.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;

namespace WpfApplication3
{
    public partial class MainWindow:Window
    {
        public void button1_Click(object sender, RoutedEventArgs e)
        {
            textBox1.Text = "Hello World";

        }
    }
}

【问题讨论】:

  • WPF 的创建者偏爱 MVVM 和命令模式作为他们的工具,所以如果你想做代码隐藏,你可能不会得到那种级别的支持。帮自己一个忙,学习 MVVM 和命令模式,它将使 WPF 的工作变得很多更容易。
  • 如上所述,不要使用partial class,而是使用ViewModelCommands
  • @XAMlMAX 可以发一下上面提到的程序的 ViewModel 和 Commands 的使用吗?
  • Here 是一个供您学习的“绝妙”示例。 HTH

标签: c# wpf visual-studio-2010 partial-classes


【解决方案1】:

不要以为你可以避免它。看起来 Visual Studio 只是检查文件后面的代码,而不是任何其他包含更多部分代码的文件。但是其他人是对的 MVVM 是要走的路,通常你几乎没有或没有代码。只有您将在那里处理的典型视图内容,所有业务逻辑都进入视图模型。

http://msdn.microsoft.com/en-us/magazine/dd419663.aspx

是开始阅读 MVVM 的好地方。

【讨论】:

    猜你喜欢
    • 2016-11-15
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    相关资源
    最近更新 更多