Silverlight CustomControl根元素

时间:2009-12-16 10:48:37

标签: silverlight custom-controls

我正在尝试构建一个自定义控件,我想将其作为我的xaml的根元素存在。

我目前有

  1. generic.xaml模板已排序。
  2. blend文件夹中的一个新模板,可以让我创建一个新的'DaveControl'
  3. 混合功能,可以在内容提供者中添加内容。
  4. 但是,如果我运行它,内容就会消失。如果我将控件添加到usercontrol,它就会停留,但我不希望这种情况发生。然后我将无法调用基本方法,因为UserControl从Control继承并且g.cs将始终抱怨。

    我需要代码隐藏中的类来实现一个可以重载save方法的实现。所以代码隐藏来自我写的一个类。

    实际上,我只是想说New Dave Control,转到后面的代码并写一个方法,'public override save'

    这可能吗?

1 个答案:

答案 0 :(得分:0)

好的,当你尝试这样做时,有很多小问题要处理。

如果您不想在混合中遇到竞争条件和对象未找到错误,请更改模板应用的顺序。

在自定义类的构造函数中,调用

this.ApplyTemplate();

阅读这篇伟大的见解,了解原因:

http://pagebrooks.com/archive/2008/11/30/tweaking-onapplytemplate-event-timing-in-silverlight-2.aspx

然后,确保您的新控件上有x:Class属性。这意味着您将获得从xaml生成的代码,该代码命名所有属性并正确解析您的xaml。