我决定我的所有 WPF 页面都需要注册路由事件。而不是包括
public static readonly RoutedEvent MyEvent= EventManager.RegisterRoutedEvent("MyEvent", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(BasePage));
在每个页面上,我决定创建一个基页面(名为 BasePage)。我将上面的代码行放在我的基本页面中,然后更改了其他一些页面以从 BasePage 派生。我无法克服这个错误:
错误 12 'CTS.iDocV7.BasePage' 不能
是 XAML 文件的根,因为它
是使用 XAML 定义的。 1号线
位置
22. C:\Work\iDoc7\CTS.iDocV7\UI\Quality\QualityControlQueuePage.xaml 1 22 CTS.iDocV7
有谁知道当我可以放置我希望能够从任何 wpf 页面使用的事件、属性、方法等时如何最好地创建基页面?
以下是我在当前项目中的做法。
首先,我定义了一个类(正如 @Daren Thomas 所说 - 只是一个普通的旧 C# 类,没有关联的 XAML 文件),如下所示(是的,这是一个真正的类 - 最好不要问):
public class PigFinderPage : Page
{
/* add custom events and properties here */
}
然后我创建一个新页面并将其 XAML 声明更改为:
<my:PigFinderPage x:Class="Qaf.PigFM.WindowsClient.PenSearchPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:my="clr-namespace:Qaf.PigFM.WindowsClient"
/>
所以我在“我的”命名空间中将其声明为 PigFinderPage。您需要的任何页面范围资源都必须使用类似的语法进行声明:
<my:PigFinderPage.Resources>
<!-- your resources go here -->
</my:PigFinderPage.Resources>
最后,切换到这个新页面的代码隐藏,并更改其类声明,以便它派生自您的自定义类,而不是直接从 Page 派生,如下所示:
public partial class EarmarkSearchPage : PigFinderPage
请记住将其保留为部分类。
这对我来说是一种享受 - 我可以在“PigFinderPage”中定义一堆自定义属性和事件,并在所有后代中使用它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)