【问题标题】:Do I need my code-behind file?我需要我的代码隐藏文件吗?
【发布时间】:2012-03-12 14:28:22
【问题描述】:

在我的 WPF 应用程序中,我的代码隐藏中只有以下内容:

public partial class MainWindow
{    
    public MainWindow()
    {
         InitializeComponent();
    }    
}

我可以从我的项目中完全删除代码隐藏文件还是必须保留在那里?我的背景是 Web 应用程序开发,我将其与具有空 Page_Load() 方法的代码隐藏文件相关联,我通常会删除该方法。

【问题讨论】:

  • 您是否尝试删除后面的代码?你为什么不注释掉 InitializeComponent();看看会发生什么?

标签: wpf code-behind


【解决方案1】:

如果您使用以下技术之一,您可以将其删除:

1:从 XAML 文件的顶部删除 x:class 声明,并找到一种不同的方式来实例化对象(例如,您不能使用 new MainWindow(),但可以使用 XamlReader.Load 并强制转换结果到一个窗口)。

或

2:使用这种方法:

<Window x:Class="WpfApplication2.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="300" Width="300">
  <StackPanel>

    <Button x:Name="mybutton">Hello</Button>

    <x:Code>
      <![CDATA[
      public MainWindow()
      {
        InitializeComponent();

        mybutton.Content = "Goodbye";
      }
      ]]>
    </x:Code>
  </StackPanel>
</Window>

这会将 InitializeComponent 调用移动到您的 XAML 中,因此您可以删除代码隐藏文件。

【讨论】:

    【解决方案2】:

    不! InitializeComponent()实际上创建了XAML文件中定义的所有控件,因此非常有必要。

    在此处查看更多信息:What does InitializeComponent() do, and how does it work in WPF?

    【讨论】:

      【解决方案3】:

      我不相信你可以删除它。具体来说,需要调用 InitializeComponent() 函数。

      【讨论】:

        【解决方案4】:

        您无法删除它。它初始化您的窗口(所有按钮、标签等)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-03-14
          • 2012-05-19
          • 2013-06-03
          • 2021-05-14
          • 2021-12-25
          • 1970-01-01
          相关资源
          最近更新 更多