wpf - 列表框项目中的多个控件

标签 wpf mvvm wpf-controls

我需要能够有尽可能多的控件以适合“列表框的一行”。目的是不浪费表格上的空间。列表框将是表单的70%的高度(30%是功能区)和100%的宽度。

我使用自定义ItemTempleSelector,因此列表中的控件将是以下各项的组合:

标签+文本框,标签+组合框,标签+日期时间选择器

当然,它们会一个接一个地出现,但是我需要它们从左到右出现。
非常感谢。

最佳答案

您需要做的是修改ListBoxItemsPanel以包含WrapPanel。这样,您的项目将从左到右显示,然后向下滚动到下一行(我想这就是您想要的)。您还需要禁用列表框上的水平滚动条。

    <ListBox ItemsSource="{Binding}" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
        <ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapPanel />
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>
        ...your other stuff like the ItemTemplate
    </ListBox>

要考虑的另一件事是您是否使用ListBox,因为您希望他们能够选择每个项目?
如果不是,那么ItemsControl将是一对一的替换品,重量更轻,并且不支持选择商品。

关于wpf - 列表框项目中的多个控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8081066/

相关文章:

wpf - 将大量数据传递到用户控件中

WPF 更改样式按钮的字体大小失败?

c# - 停止双重动画

android - 如何在 2020/21 年获得 Activity 中的 ViewModel 实例?

wpf - 在 WPF 中存储事件处理程序方法的位置 - MVVM

javascript - 如何使用 ko.computed 提取部分 knockoutArray

c# - HttpWebRequest 因异步和等待而随机失败

wpf - 在 DataGrid 控件中自定义自动生成的列

.net - WPF - TabControl - 防止选择更改

wpf - 适合特定宽度的字符串长度