2009-12-16 50 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。