如何在.xaml文件(Silverlight)中指定不同的基类?

如何在.xaml文件中为单独的Silverlight页面类指定一个公共基类?我有几个常见的属性,我想要跨页面共享,但是我不知道如何做,而不需要手动更改每个生成的.g.cs文件中的基类.

这可能吗?我认为这是可能的,因为例如Toolkit中的ChildControl来自不同的类.我是否俯视一些明显的东西?

默认情况下,所有Silverlight“页面”实际上都是从UserControl派生的.所以,这是你需要做的.简单的例子,当然你可能想要声明依赖属性,事件等等.

1.创建具有公共属性的类

public class YourUserControlBase : UserControl
{
    public bool SomeProperty {get; set; }
}

2.创建/修改页面的XAML

为包含新基类的本地程序集和命名空间添加XML命名空间,并记住将x:Class属性保留在文件的顶部,但将UserControl根元素修改为本地名称

这是我更新的文件:

<local:YourUserControlBase
xmlns:local="clr-namespace:SilverlightApplication1"
x:Class="SilverlightApplication1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"  
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">

        
    

修改代码隐藏

(Page.xaml.cs文件,而不是自动生成的)正确继承自YourUserControlBase:

public partial class MainPage : YourUserControlBase
{
    public MainPage()
    {
        InitializeComponent();
    }
}

应该是!祝你好运.

相关文章
相关标签/搜索