Tech
News
Videos
Forums
Jobs
Books
Events
More
Interviews
Live
Learn
Training
Career
Members
Blogs
Challenges
Certification
Contribute
Article
Blog
Video
Ebook
Interview Question
Collapse
Feed
Dashboard
Wallet
Learn
Achievements
Network
Rewards
SharpGPT
Premium
Contribute
Article
Blog
Video
Ebook
Interview Question
Register
Login
Transferring data from one ListBox to another in WPF
WhatsApp
Mahesh Chand
6y
121.2k
0
1
100
Article
TwoListBoxes.xaml.zip
We have seen many requirements where a page has two ListBox controls and left ListBox displays a list of items and using a button we can add items from the left ListBox and add them to the right side ListBox and using the remove button we can remove items from the right side ListBox and add them back to the left side ListBox.
This sample shows how we can move items from one ListBox to another. The final page looks like Figure 1. The Add button adds the selected item to the right side ListBox and removes from the left side ListBox. The Remove button removes the selected item from the right side ListBox and adds back to the left side ListBox.
Figure 1
Figure 2
The following XAML code generates two ListBox control and two Button controls.
<
ListBox
Margin
=
"11,13,355,11"
Name
=
"LeftListBox"
/>
<
ListBox
Margin
=
"0,13,21,11"
Name
=
"RightListBox"
HorizontalAlignment
=
"Right"
Width
=
"216"
/>
<
Button
Name
=
"AddButton"
Height
=
"23"
Margin
=
"248,78,261,0"
VerticalAlignment
=
"Top"
Click
=
"AddButton_Click"
>
Add
>
>
</
Button
>
<
Button
Name
=
"RemoveButton"
Margin
=
"248,121,261,117"
Click
=
"RemoveButton_Click"
>
<
<
Remove
</
Button
>
On the Window loaded event, we create and load data items to the ListBox by setting the ItemsSource property to an ArrayList.
private
void
Window_Loaded(
object
sender, RoutedEventArgs e)
{
// Get data from somewhere and fill in my local ArrayList
myDataList = LoadListBoxData();
// Bind ArrayList with the ListBox
LeftListBox.ItemsSource = myDataList;
}
/// <summary>
/// Generate data. This method can bring data from a database or XML file
/// or from a Web service or generate data dynamically
/// </summary>
/// <returns></returns>
private
ArrayList LoadListBoxData()
{
ArrayList itemsList =
new
ArrayList();
itemsList.Add(
"Coffie"
);
itemsList.Add(
"Tea"
);
itemsList.Add(
"Orange Juice"
);
itemsList.Add(
"Milk"
);
itemsList.Add(
"Mango Shake"
);
itemsList.Add(
"Iced Tea"
);
itemsList.Add(
"Soda"
);
itemsList.Add(
"Water"
);
return
itemsList;
}
On Add button click event handler, we get the value and index of the selected item in the left side Listbox and add that to the right side ListBox and remove that item from the ArrayList, which is our data source. The ApplyBinding method simply removes the current binding of the ListBox and rebinds with the updated ArrayList.
private
void
AddButton_Click(
object
sender, RoutedEventArgs e)
{
// Find the right item and it's value and index
currentItemText = LeftListBox.SelectedValue.ToString();
currentItemIndex = LeftListBox.SelectedIndex;
RightListBox.Items.Add(currentItemText);
if
(myDataList !=
null
)
{
myDataList.RemoveAt(currentItemIndex);
}
// Refresh data binding
ApplyDataBinding();
}
/// <summary>
/// Refreshes data binding
/// </summary>
private
void
ApplyDataBinding()
{
LeftListBox.ItemsSource =
null
;
// Bind ArrayList with the ListBox
LeftListBox.ItemsSource = myDataList;
}
Similarly, on the Remove button click event handler, we get the selected item text and index from the right side ListBox and add that to the ArrayList and remove from the right side ListBox.
private
void
RemoveButton_Click(
object
sender, RoutedEventArgs e)
{
// Find the right item and it's value and index
currentItemText = RightListBox.SelectedValue.ToString();
currentItemIndex = RightListBox.SelectedIndex;
// Add RightListBox item to the ArrayList
myDataList.Add(currentItemText);
RightListBox.Items.RemoveAt(RightListBox.Items.IndexOf(RightListBox.SelectedItem));
// Refresh data binding
ApplyDataBinding();
}
Summary
In this article, we saw how we can transfer items from one ListBox to another by adding and remove items from the ListBoxes.
add items in ListBox
ListBox data transfer
remove Items in ListBox
WPF ListBox
Up Next
Ebook Download
View all
WPF Simplified: Build Windows Apps Using C# and XAML
Read by 1.5k people
Download Now!
Learn
View all
Mindcracker
Founded in 2003, Mindcracker is the authority in custom software development and innovation. We put best practices into action. We deliver solutions based on consumer and industry analysis.
Membership not found