【问题标题】:How to extend generated xaml.cs file? UWP如何扩展生成的 xaml.cs 文件? UWP
【发布时间】:2018-08-21 12:33:14
【问题描述】:

在 UWP 中创建新的 UserControl 时,会生成 xaml.cs 文件后面的以下代码。

public sealed partial class MyUserControl: UserControl
{
    public MyUserControl()
    {
        this.InitializeComponent();
    }
}

我想更新这个文件,这样当 xaml 无法正确解析时,我们可以有更好的日志记录。

public sealed partial class MyUserControl: UserControl
{
    public MyUserControl()
    {
        try
        {
            this.InitializeComponent();
        }
        catch (Exception e)
        {
            //do all the logging
        }
    }
}

无论是通过扩展 UserControl 还是仅执行上述操作(或其他选项),我都希望避免为将来创建的所有用户控件手动执行此操作。有什么方法可以更新/扩展我们创建新用户控件/xaml.cs 文件时生成的代码,这样我就不必每次都手动添加额外的日志记录?

谢谢。

【问题讨论】:

  • 你能解释一下吗,你是说你不看写try catch,就像你在这里为你创建的每个用户控件所做的那样?
  • 是的。我希望它与生成的其余代码一起生成。
  • 是的,您可以更改 cs 文件,但不,这不会捕获解析错误。

标签: c# xaml uwp


【解决方案1】:

不,你不能。

UserControluwp SDK 的一部分,您不能编辑该类本身。但是,您可以在其父级 ( base ) 的构造函数调用构造函数中从 usercontrol 创建一个子级。然后你可以创建这个新类的子类来创建你的用户控件,然后将它连接到 UI 部分,这可能会更复杂。因此,现在错误记录您的 xaml 解析的最简单方法是您已经在执行的方式。你必须把那个try catch。您可以只创建一个 sn-p,每次创建新用户控件时只需在其构造函数上使用该 sn-p,也许可以节省一些时间。

【讨论】:

  • 我不是在谈论编辑课程本身。我在谈论通过将 UserControl 用作基类或其他方式来扩展 UserControl。我要问的问题是我是否可以更新生成代码的位置,以便它自动包含我的新类扩展 UserControl 或包含 try catch。
  • 基本上你希望每个用户控件自动生成try catch,这是不可能的,因为你必须编辑用户控件的生成器,这是你无法做到的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-06
  • 1970-01-01
  • 2013-01-11
  • 2018-05-12
  • 1970-01-01
  • 2011-08-22
相关资源
最近更新 更多