listview添加新项目控件
问题描述:
我有一个列表视图,并希望使用某种控件动态添加项目到它。例如 listview添加新项目控件
提供“PACK1”“PACK2”是ListViewItems我希望能有更多的(红方)控制,始终可见,并增加了新的“点击包”项目。 所以这个任务很标准。通常如何做?
UPDATE CompositeCollection似乎是一个不错的解决方案。
答
我做了一个非常简单的布局与一个列表视图。我添加一个按钮到列表视图项目,并听取点击按钮之前插入一个新的对象。
public MainWindow()
{
InitializeComponent();
listViewtst.Items.Add("test");
listViewtst.Items.Add("test2");
Button btn = new Button();
btn.Content = "+";
btn.Click += Btn_Click;
listViewtst.Items.Add(btn);
}
private void Btn_Click(object sender, RoutedEventArgs e)
{
listViewtst.Items.Insert(listViewtst.Items.Count - 1, "added by the btn");
}
不知道这是最好的解决办法,但是,这是我应该怎样做,如果没有人给我一个更好的办法:)
其他解决方案:
背后
代码/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
private ObservableCollection<MyObject> _windows = new ObservableCollection<MyObject>();
public MainWindow()
{
InitializeComponent();
Windows.Add(new MyObject { Title = "Collection Item 1" });
Windows.Add(new MyObject { Title = "Collection Item 2" });
}
private void Btn_Click(object sender, RoutedEventArgs e)
{
}
public ObservableCollection<MyObject> Windows
{
get { return _windows; }
set { _windows = value; }
}
private void button_Click(object sender, RoutedEventArgs e)
{
Windows.Add(new MyObject { Title = "From Btn" });
}
}
public class MyObject
{
public string Title { get; set; }
}
的XAML:
<Window x:Class="Move_To_Prd_Dev.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="246" Width="325" Name="UI">
<Window.Resources>
<CollectionViewSource Source="{Binding ElementName=UI, Path=Windows}" x:Key="YourMenuItems"/>
</Window.Resources>
<Grid DataContext="{Binding ElementName=UI}">
<ListBox x:Name="listTxt" HorizontalAlignment="Left" Height="163" Margin="10,29,0,0" VerticalAlignment="Top" Width="297">
<ListBox.ItemsSource>
<CompositeCollection>
<CollectionContainer Collection="{Binding Source={StaticResource YourMenuItems}}" />
<Button x:Name="button" Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Click="button_Click"/>
</CompositeCollection>
</ListBox.ItemsSource>
</ListBox>
</Grid>
它使用CompositeCollection到按钮控件添加到列表(其优点是按钮总是最后)
你有什么工作迄今已为PACK1和PACK2项目?向我们展示一些代码,以便我们可以看到我们可以在哪里添加一些想法,以便了解您要完成的任务。 – Batuta
我已经添加了一些代码,但它只是一个草图。在这个代码中,它的列表视图内的列表视图,但没关系。主要的问题是有没有标准的方法来做到这一点? – SkySurfer
我认为这个代码只会使问题复杂化,因为listview里面有listview。真正的问题甚至可以解决到没有任何样式的默认列表视图。 – SkySurfer