如何将子项目添加到ListView
?我需要动态生成一切,但我发现每个示例都使用XAML。将子项目添加到ListView而不使用XAML
非WPF是如此简单:
ListViewItem lvi = listview.items.add(wahtever);
lvi. blah blah blah
如何在WPF加分项目,而无需使用XAML?
如何将子项目添加到ListView
?我需要动态生成一切,但我发现每个示例都使用XAML。将子项目添加到ListView而不使用XAML
非WPF是如此简单:
ListViewItem lvi = listview.items.add(wahtever);
lvi. blah blah blah
如何在WPF加分项目,而无需使用XAML?
SubItem or ListItem ?? 简单:
myListbox.Items.Add(object);
您可以添加任何类型的对象到该集合或特定ListBoxItem的对象像这样的:
this.List.Items.Add(new ListBoxItem{ Content = "Value to display"});
的“WPF办法”将是您的列表视图绑定到一个集合代表您想要显示的数据。然后将包含数据的对象添加到该集合。您几乎从不需要按照计划进行手动处理将ListViewItems
手动添加到您的列表中。我能想出一个例子,但有在这里的许多线程,以便已经是解决正是这个问题:
我需要一个忙,我如何通过动态添加行来更改背景颜色? – Sandy 2011-01-28 05:13:42
如前所述,WPF没有分项像WinForms。相反,您可以在适合您的目的的对象上使用属性。
为了完整起见,这里是XAML与代码的对比。
XAML:
<UniformGrid Columns="2">
<ListView Name="xamlListView">
<ListView.View>
<GridView>
<GridViewColumn Header="X Value" DisplayMemberBinding="{Binding X}"/>
<GridViewColumn Header="Y Value" DisplayMemberBinding="{Binding Y}"/>
</GridView>
</ListView.View>
<ListView.Items>
<PointCollection>
<Point X="10" Y="20"/>
<Point X="20" Y="30"/>
</PointCollection>
</ListView.Items>
</ListView>
<ListView Name="codeListView"/>
</UniformGrid>
代码:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
var view = new GridView();
view.Columns.Add(new GridViewColumn { Header = "First Name", DisplayMemberBinding = new Binding("First") });
view.Columns.Add(new GridViewColumn { Header = "Last Name", DisplayMemberBinding = new Binding("Last") });
codeListView.View = view;
codeListView.Items.Add(new { First = "Bill", Last = "Smith" });
codeListView.Items.Add(new { First = "Jane", Last = "Doe" });
}
的WPF的ListView不要有 '子项' 像旧的WinForms一样。它需要一个非常不同的思维模式。我认为你现在的样子,所有的XAML到底是什么? Winforms更直接。但现在,我不能回到winforms。 WPF在我的书中胜出。只需要一点时间让你的头部,但是当你这样做。这很棒。 – 2011-01-14 02:54:21
是的,我记得我的WPF头几个月...我的秃子增加了...现在我想到的任何UI平台,我想它有绑定,主题,样式,触发器,DataContexts,命令,附加属性。该死的WinForms太蹩脚了! :p – 2011-09-09 07:59:33