public AllControlsTouch()
		{
			this.viewModel = (AllControlsTouchViewModel)ViewModelLocator.GetViewModel(this);
			this.DataContext = viewModel;

			InitializeComponent();
			this.examplesListScrollHelper = new ExamplesListScrollHelper(this.allControlsTileList, this.rootAllControls);
			this.examplesListScrollHelper.Initialize();
		}
        public override System.Windows.DataTemplate SelectTemplate(object item, System.Windows.DependencyObject container)
        {
            base.SelectTemplate(item, container);

            if (this.allControlsTouchViewModel == null)
            {
                // find the parent element with DataContext being the ViewModelBase

                FrameworkElement element = null;
                element = VisualTreeHelper.GetParent(container) as FrameworkElement;
                while (element != null)
                {
                    this.allControlsTouchViewModel = element.DataContext as AllControlsTouchViewModel;
                    if (this.allControlsTouchViewModel != null)
                    {
                        break;
                    }

                    element = VisualTreeHelper.GetParent(element) as FrameworkElement;
                }
            }

            var controlInfo = item as IControlInfo;

            if (this.allControlsTouchViewModel.NewControls.Contains(controlInfo))
            {
                return this.NewItemTemplate;
            }
            else if (this.allControlsTouchViewModel.HighlightedControls.Contains(controlInfo))
            {
                return this.HighlightedItemTemplate;
            }
            else
            {
                return this.NormalTemplate;
            }
        }
 public ExampleNameGroupDescription(AllControlsTouchViewModel viewModel)
 {
     this.viewModel = viewModel;
 }