Hej all,
我想知道是否可以为XAML中的属性分配多个控件。
假设我的XAML中有2个控件:
<Button x:Name="_Btn1 Content="Button 1" />
<Button x:Name="_Btn2 Content="Button 2" />
<local:MyControl x:Name="_MyCtrl" Controls="{what goes here?}" />
或者我应该将我的控件声明为容器控件并将所有控件放在其中,如下所示:
<local:MyControl x:Name="_MyCtrl">
<Button x:Name="_Btn1 Content="Button 1" />
<Button x:Name="_Btn2 Content="Button 2" />
</local:MyControl>
Thnx提前!
Grtz, DWI
答案 0 :(得分:0)
如果你让 MyControl 继承 ItemsControl ,你可以这样做。
然后这个
<local:MyControl x:Name="_MyCtrl">
<Button x:Name="_Btn1 Content="Button 1" />
<Button x:Name="_Btn2 Content="Button 2" />
</local:MyControl>
将起作用,
<local:MyControl x:Name="_MyCtrl" ItemsSource="ViewModelorControlCollection" />
也会奏效。
ViewModelorControlCollection可以在ViewModel中定义,也可以在xaml中定义为静态资源。
答案 1 :(得分:0)
这真的取决于你要做什么。通常,您只需定义一个DataTemplate
。
<local:MyControl x:Name="_MyCtrl">
<local:MyControl.ControlsTemplate>
<DataTemplate>
<StackPanel>
<Button x:Name="btn1" Content="Button 1" />
<Button x:Name="btn2" Content="Button 2" />
</StackPanel>
</DataTemplate>
</local:MyControl.ControlsTemplate>
</local:MyControl>
答案 2 :(得分:0)
你肯定需要某种容器。这可以是一个简单的列表或专门的集合。无论你在控制中使用什么。
<local:MyControl>
<local:MyControl.Controls>
<ControlCollection> <!-- or whatever -->
<Button/>
<Button/>
</ControlCollection>
</local:MyControl.Controls>
</local:MyControl>
如果您使用Panel
或类似的类,则无需明确指定ControlCollection
。然后,您可以定义控件,例如StackPanel
。