在UserControl中动态添加UserControl

时间:2019-02-14 18:46:38

标签: wpf

我有一个UserControl(UserControlA)可以容纳多个其他UserControls(UserControlB),但我希望该数字是动态的。

当前,UserControlA的XAML如下所示:

UserControlA.xaml

<UserControl ...>
    <StackPanel>
        <local:UserControlB />
        <local:UserControlB />
        <local:UserControlB />
    </StackPanel>
</UserControl>

然后按预期方式在MainWindow.xaml中显示UserControlA:

MainWindow.xaml

<Window ...>
    <Grid>
        <controls:UserControlA />
    </Grid>
</Window>

但是,我希望不再只是被3个UserControlB所困扰,而是希望该数字根据传递给它的对象而动态变化。像这样...

<Window ...>
    <Grid>
        <controls:UserControlA UserControlBs="{Binding Path=UserControlBList}" />
    </Grid>
</Window>

然后,根据存在的UserControlB,创建UserControlB并填充UserControlA。

有什么好的例子吗?

谢谢!

1 个答案:

答案 0 :(得分:-2)

“列表视图”-是您要寻找的。.

在userControlA内部而不是stackpanel中,使用“ ListView”。 将ControlBList绑定到Listview的Itemsource(这将基于listview itemsource中的总项目填充controlB的数量)。

在列表视图的ItemTemplate中放入一个单个ControlB。