1
我有一個用戶控件作爲這樣的屬性:控制的XAML內容設置到控制
public partial class MyControl : UserControl
{
private static readonly DependencyProperty pageContentProperty = DependencyProperty.Register("PageContent", typeof(UIElement), typeof(ActionPage), new PropertyMetadata(null));
public UIElement PageContent
{
get { return (UIElement)base.GetValue(pageContentProperty); }
set { base.SetValue(pageContentProperty, value); }
}
public MyControl()
{
InitializeComponent();
}
// More code
}
現在,如果我在XAML中使用它,我必須做的:
<l:MyControl>
<l:MyControl.PageContent>
<TextBlock Text="Lorum Ipsum"/>
</l:MyControl.PageContent>
</l:MyControl>
但我想只是做:
<l:MyControl>
<TextBlock Text="Lorum Ipsum"/>
</l:MyControl>
目前,如果我這樣做它替換爲TextBlock
控制的全部內容(WH ich對於一個正常的UserControl
有意義),但我怎麼能覆蓋這種行爲?
的ContentProperty不能適用於財產,但需要應用到類。所以我只是將屬性移動到類定義爲 '[ContentProperty(「PageContent」)] public Partical class MyControl' 它工作。感謝您讓我走上正軌。我將你的答案標記爲答案,但也許只是修改它以備將來參考。 再次感謝。 – Cornelius 2011-04-07 11:14:16
@Cornelius:D'oh相應編輯。 – AnthonyWJones 2011-04-07 11:51:56
嗨AnthonyWJones! 當ContentProperty是一個集合時,如何直接在xaml中設置。 – MasterLuV 2015-01-15 06:56:33