Пример #1
0
        /// <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;
                }
            }
        }
Пример #2
0
 private void ShowControl(FilmResult film, string title)
 {
     _cont = new ResultsTemplate(film, title);
     panel1.Controls.Add(_cont);
     _cont.Dock = DockStyle.Fill;
 }