我有一组带有附加命令和逻辑的控件,它们以相同的方式不断重用.我决定创建一个包含所有常用控件和逻辑的用户控件.
但是我还需要控件才能保存可以命名的内容.我尝试了以下方法:
<UserControl.ContentTemplate>
<DataTemplate>
<Button>a reused button</Button>
<ContentPresenter Content="{TemplateBinding Content}"/>
<Button>a reused button</Button>
</DataTemplate>
</UserControl.ContentTemplate>
Run Code Online (Sandbox Code Playgroud)
但是,似乎无法命名放置在用户控件内的任何内容.例如,如果我以下列方式使用控件:
<lib:UserControl1>
<Button Name="buttonName">content</Button>
</lib:UserControl1>
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
无法在元素"Button"上设置Name属性值"buttonName".'Button'属于元素'UserControl1'的范围,在另一个范围内定义时,已经注册了一个名称.
如果我删除buttonName,然后编译,但我需要能够命名内容.我怎样才能做到这一点?