Hi.
I have a WCF service that retrieves information from a database. It does so as follows:
public List<string> ShowAllBooks()
{
List<string> booksList = new List<string>();
try
{
using (bookcatalogueEntities context = new bookcatalogueEntities())
{
var books = from b in context.catalagues
select b.Title;
booksList = books.ToList();
}
}
catch
{
}
return booksList;
}
}
When the WPF Client starts, the items (books) should be shown in a list box. I have this for the list box code behind:
private void ShowAllBooks()
{
CatalogueManagerClient.ServiceReference.BookCatalogueServiceClient proxy = new BookCatalogueServiceClient();
try
{
lbBooks.Dispatcher.Invoke(new Action(() =>
{
lbBooks.ItemsSource = proxy.ShowAllBooks();
}), DispatcherPriority.ApplicationIdle);
txtBookPath.Foreground = Brushes.Black;
txtBookPath.Text = "Ready";
}
catch (CommunicationException ex)
{
MessageBox.Show(proxy.State.ToString() + " ..."+ex.Message);
}
}
and for the xaml part, i have:
<ListBox Height="440" KeyDown="lbBooks_KeyDown" MouseDoubleClick="lbBooks_MouseDoubleClick" Name="lbBooks" SelectionChanged="lbBooks_SelectionChanged" Width="210" />
The problem is that when the client starts, it can show the books in the listbox. The problem is that when i select a book, it throws a run time error called:
InvalidOperationException
Stating:
Items collection must be empty before using ItemsSource.
I have tried googling for a solution and gone through articles and problems here but i cannot find a matching problem. Please assist on how to resolve this problem.