ListBoxItem
在 WPF 中,我可以通过向 s 提供以下内容来将任何 UI 添加到sListBox
中ItemTemplate
:
<ListBox ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderThickness="1" BorderBrush="Gray" CornerRadius="8" Padding="4,0,4,0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<CheckBox Grid.Column="1" Content="Is Active Customer" IsChecked="{Binding IsActive}"/>
<Label Content="Id:" Grid.Row="1" HorizontalAlignment="Right"/>
<Label Content="Name:" Grid.Row="2" HorizontalAlignment="Right"/>
<TextBox Text="{Binding Id}" Grid.Row="1" Grid.Column="1"/>
<TextBox Text="{Binding Name}" Grid.Row="2" Grid.Column="1"/>
</Grid>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
结果是:
有什么方法可以在 Windows 窗体中实现相同的功能吗?
编辑:
1 - 有什么方法可以在 Windows 窗体中实现相同的功能,同时保持和separation of concerns
之间的方式,如果我以后想完全重新定义,我不必重构整个应用程序?View
Application Logic
View
2 - winforms 是否支持数据绑定,使得我的每个ListBoxItems
都可以绑定到一个 complex Entity
,最终包括从模型数据到 UI 数据的中间类型转换,这样我就不必编写大量填充视图的样板代码,然后将 UI 值传递回模型以保存?
3 - 如果我想以Animations
这样一种方式进行介绍,即当前SelectedItem
会以动画方式将自身扩展为某种“行详细信息”模式,您可以在其中看到很多附加信息,该怎么办?
4 - winforms 是否支持UI Virtualization
这样一种方式,如果我有,比如说 100 万个项目,它不需要一生来加载 UI,并且只渲染屏幕上可见的内容?
5 - 假设我想在方程式中引入复杂的图形。winforms渲染硬件加速吗?
6 - 我如何Resolution Independent
以这样一种方式进行所有这些操作,使 ListBox 及其所有内容拉伸到可用的窗口大小,以便在保持与较小屏幕的兼容性的同时利用更大的屏幕?
7 - 建议使用ListView
控件而不是常规控件ListBox
,是否ListView
提供向其中添加任何 UI 的能力?例如,我可以为每个项目添加视频吗?还是带有保存和编辑按钮的复杂主/详细模板?
8 - winforms 是否提供一致且充分的文档模型,可以创建高保真所见即所得文档和其他类型的丰富内容?