如何在.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(); } }
应该是!祝你好运.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。