最佳答案
我有一组带有附加命令和逻辑的控件,它们以相同的方式不断地被重用。我决定创建一个包含所有常见控件和逻辑的用户控件。
但是,我还需要控件能够保存可以命名的内容。我尝试了以下方法:
<UserControl.ContentTemplate>
<DataTemplate>
<Button>a reused button</Button>
<ContentPresenter Content="{TemplateBinding Content}"/>
<Button>a reused button</Button>
</DataTemplate>
</UserControl.ContentTemplate>
然而,似乎放置在用户控件中的任何内容都不能命名。例如,如果我以下列方式使用该控件:
<lib:UserControl1>
<Button Name="buttonName">content</Button>
</lib:UserControl1>
我收到以下错误:
无法设置 Name 属性值‘ buttonName’ on element 'Button'. 'Button' is 在元素的范围内 ‘ UserControl1’,它已经有了一个 name registered when it was defined in 另一个瞄准镜。
如果我删除了 buttonName,那么它就会编译,但是我需要能够命名内容。我怎么才能做到呢?