我仍然只是脚踝深入SL,所以希望这很简单,我很想念......
我需要两个(有一天更多)Silverlight控件,主要用于显示有些类似的数据网格,但大部分相同的代码隐藏布线都是相同的。
我一直在尝试创建一个继承UserControl的基类,然后创建单独的基于XAML的用户控件,然后调整根节点/ codebehind以继承我的新基类。
当我这样做时,XAML(子类)中没有任何东西呈现。有什么指针吗?
修改:添加代码和更新
安东尼的评论和更清晰的头脑让它发挥作用。接下来是如何干净地将其连接起来。我正在沿着向父类添加受保护字段并使事件处理程序变为虚拟的路径,然后在加载子项时将父字段设置为引用子项的包含数据网格,并将事件处理程序覆盖为刚刚传递到基础的shell。
public class GridControlBase : UserControl
{
protected DataGrid BaseGrid;
public GridControlBase()
{
}
public virtual void GridSelectionChanged (object sender, RoutedEventArgs e)
{
}
}
public partial class GridOne : GridControlBase
{
public GridOne()
{
InitializeComponent();
BaseGrid = ChildGridOne; // ChildGridOne defined in xaml
}
public override void GridSelectionChanged(object sender, RoutedEventArgs e)
{
base.GridSelectionChanged(sender, e);
}
}
这是否是寻求使基类抽象的好时机?