Click here to Skip to main content
15,905,915 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Hello,
Below is the code currently i am using for grouping in listview. I am able to group records, but when user clicks on the button(AddNewCluster) to create new group with set of records i am unable to concatenate with the old records. The listview gets updated with the new group and records. But i need to show the user both the old and newly added group and records.
C#
ListCollectionView collectionView; 
 
public Window1() 
{
InitializeComponent();
 
var clusters = new[] 
{
 
new Cluster { Name = "Front end" }, 
 
new Cluster { Name = "Middle end" }, 
 
new Cluster { Name = "Back end" }, 
};
collectionView =
new ListCollectionView(new[] 
{
 
new Server { Cluster = clusters[0], Name = "webshop1" }, 
 
new Server { Cluster = clusters[0], Name = "webshop2" }, 
 
new Server { Cluster = clusters[0], Name = "webshop3" }, 
 
new Server { Cluster = clusters[0], Name = "webshop4" }, 
 
new Server { Cluster = clusters[0], Name = "webshop5" }, 
 
new Server { Cluster = clusters[0], Name = "webshop6" }, 
 
new Server { Cluster = clusters[2], Name = "sql1" }, 
 
new Server { Cluster = clusters[2], Name = "sql2" }, 
});
 
var groupDescription = new PropertyGroupDescription("Cluster.Name"); 
 
// this foreach must at least add clusters that can't be  
 
// derived from items - i.e. groups with no items in them  
 
foreach (var cluster in clusters) 
groupDescription.GroupNames.Add(cluster.Name);
collectionView.GroupDescriptions.Add(groupDescription);
ServersList.ItemsSource = collectionView;
Clusters = groupDescription.GroupNames;
}
 
readonly ObservableCollection<object> Clusters; 
 
void AddNewCluster_Click(object sender, RoutedEventArgs e) 
{
Clusters.Add(NewClusterName.Text);
 
var clusters = new[] 
{
 
new Cluster { Name = NewClusterName.Text }, 
};
 
collectionView =
new ListCollectionView(new[] 
{
 
new Server { Name = "new server data" }, 
});
 
var groupDescription = new PropertyGroupDescription("Cluster.Name"); 
 
// this foreach must at least add clusters that can't be 
 
// derived from items - i.e. groups with no items in them 
 
foreach (var cluster in clusters) 
groupDescription.GroupNames.Add(cluster.Name);
collectionView.GroupDescriptions.Add(groupDescription);
ServersList.ItemsSource = collectionView;
}
Posted
Updated 19-Jan-12 20:15pm
v2

1 solution

Solved my self thanks!!! i added a ObservableCollection and thn added to ListCollectionView!!! i am able to achive my task !!! thanks
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900