我想创建一个基本上是ListBox的控件,但每个ListItem都是一个控件集合。因此,该列表框的每个项目都是Label,CheckBox,Timer和TextBox的组合。
可以使用.NET框架完成吗?
如果是这样,您对如何入门,样本或讨论的任何链接或任何开源示例有任何建议吗?
答案 0 :(得分:1)
正如Dani所说,WPF非常容易。为了让您了解它是多么简单,以下是使用Expression Blend设计器工具或使用代码的方法:
如果您只是将ListBox拖到WPF窗口或UserControl上,那么在ItemTemplate属性的Properties窗口中选择“New Template”,您将获得一个带有自定义模板的ListBox。在模板中创建一个面板(如DockPanel),然后将Labels,CheckBoxes,TextBoxes和其他控件拖入其中。
通过执行此过程,设计人员将创建类似于以下内容的XAML:
<ListBox ItemsSource="{Binding myItems}">
<ListBox.ItemTemplate>
<DataTemplate TargetType="{x:Type MyItemType}">
<DockPanel>
<Label Content="Hello:"/>
<CheckBox Content="Click Here" />
<TextBox Text="Here is my text" />
</DockPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
或者你可以自己编写XAML。使用IntelliSense这样做很容易。
答案 1 :(得分:1)
如果WPF不是一个选项,您可以使用DataGridView控件: DataGridViewCheckBoxColumn用于复选框,2 DataGridViewTextBoxColumn用于Label和TextBox。您可以将网格的属性SelectionMode设置为FullRowSelect以选择整行。还要检查grid的CellPainting事件;你可以在那里添加一些自定义绘画代码。
答案 2 :(得分:0)
在WPF中非常容易 - 所以是的,它可以在.NET Framework中实现。 (你有WPF中的控件,可以包含其他控件,如可以有标签复选框和文本框的面板,我不确定是否有定时器控件,但我确定它可以编程)。
在Winforms中,它更难,使用网格和gridview而不是列表框可能更容易,但是还有一些工作要做。
有商业控制 - 比使这个功能更容易实现。 (DevExpress Grid for winforms)