我不知道我正在寻找的容器/控件会被称为什么,所以我无法真正搜索它。
添加更多相同的Usercontrol Usercontrol
- 点击
+会在现有控件的右侧添加一个新的 My Usercontrol 实例 - 点击
X将释放被点击的用户控件 - 我并不是真的在寻找将每个新实例放在新选项卡上的选项卡控件,但如果没有其他任何东西,它可能会这样做。
- 设计显然不是图片所示,图片只是说明基本思想
有任何关键字/名称建议或指向现有实现的链接吗?
例如也许有一种样式可以将 ListBox 变成合适的东西?
请您参考如下方法:
我会使用 ItemsControl 并将它的 ItemsPanelTemplate 自定义为您想要的任何内容。
ItemsControls 用于遍历对象集合,并以您想要的任何形式显示它们。我写了一些简单的代码示例 here如果您有兴趣,或者这是另一个简单的例子:
<DockPanel x:Name="RootPanel">
<Button Style="{StaticResource AddButtonStyle}"
DockPanel.Dock="Right" VerticalAlignment="Center"
Command="{Binding AddItemCommand" />
<ScrollViewer>
<ItemsControl ItemsSource="{Binding MyCollection}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<local:MyUserControl />
<Button Style="{StaticResource RemoveButtonStyle}"
Command="{Binding ElementName=RootPanel, Path=DataContext.RemoveItemCommand}"
CommandParameter="{Binding }"
HorizontalAlignment="Left" VerticalAlignment="Top" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
</DockPanel>
您的 ItemsControl 将绑定(bind)到对象的 ObservableCollection,而您的添加/删除按钮将简单地从该集合中添加/删除项目。由于它是一个 ObservableCollection,当集合发生变化时它会通知 UI 并自动更新。
