/// <summary> /// Handles completion of search by displaying results /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnSearchCompleted(object sender, RunWorkerCompletedEventArgs e) { if (!e.Cancelled) { // set results IEnumerable results = (IEnumerable)e.Result; if (results.Cast <object>().Any()) { // check if the results template is set; if not, use the default if (ResultsTemplate != null) { ResultsPanel.Content = ResultsTemplate.LoadContent(); } else { ResultsPanel.Content = DefaultResultsTemplate.LoadContent(); ((ListBox)ResultsPanel.Content).ItemContainerStyle = ItemContainerStyle; ((ListBox)ResultsPanel.Content).ItemsPanel = ItemsPanel; ((ListBox)ResultsPanel.Content).ItemTemplate = ItemTemplate; } // if the content supports items binding, bind the collection if (ResultsPanel.Content is ItemsControl) { ((ItemsControl)ResultsPanel.Content).ItemsSource = results; } } else { // check if there's a template for no results; if not, use the default and set the message if (NoResultsTemplate != null) { ResultsPanel.Content = NoResultsTemplate.LoadContent(); } else { ResultsPanel.Content = DefaultNoResultsTemplate.LoadContent(); ((TextBlock)((StackPanel)ResultsPanel.Content).Children.First()).Text = NoResultsMessage; } } if (ResultsPanel.Content is FrameworkElement) { ((FrameworkElement)ResultsPanel.Content).Width = InputTextBox.ActualWidth; } } }
private void ShowControl(FilmResult film, string title) { _cont = new ResultsTemplate(film, title); panel1.Controls.Add(_cont); _cont.Dock = DockStyle.Fill; }