2009-12-16 27 views
0

我想构建一个自定义控件,我想作为我的xaml的根元素存在。Silverlight CustomControl根元素

我现在有

  1. 的generic.xaml模板进行排序。
  2. 混合文件夹中的新模板将允许我创建新的“DaveControl”
  3. 混合向内容添加内容的能力,该内容将出现在contentpresenter中。

但是,如果我运行它,内容会消失。如果我将控件添加到用户控件,它会保留,但我不希望发生这种情况。那么我将无法调用基本方法,因为UserControl从Control继承,g.cs将始终抱怨。

我需要在代码隐藏的类有一个实现,我可以重载一个保存方法。所以代码隐藏源自我写的一个类。

实际上,我只想说新戴夫控制,去后面的代码,写一个方法,“公共覆盖保存”

这可能吗?

+0

你可以添加一段代码来说明你的问题吗? –

回答

0

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

如果你不想碰上的比赛条件和混合找不到对象错误,更改模板中的应用顺序。

构造为自定义类中,调用

this.ApplyTemplate(); 

阅读本伟大的洞察力明白为什么:

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

然后,确保你有X:类属性上新 控制。这将意味着你从你的xaml生成了代码,这些代码命名了所有的属性并正确地解析了你的xaml。