/// <summary>
        /// Initializes a new instance of the KinectSensorChooserUI class
        /// </summary>
        public KinectSensorChooserUI()
        {
            Loaded += OnLoaded;
            Unloaded += OnUnloaded;

            this.InitializeComponent();
            this.popupCloseCheck = new DispatcherTimer(
                TimeSpan.FromMilliseconds(1000), DispatcherPriority.Normal, this.OnPopupCloseCheckFired, this.Dispatcher);

            var viewModel = new KinectSensorChooserUIViewModel();
            this.layoutRoot.DataContext = viewModel;

            var visualStateBinding = new Binding("VisualState") { Source = viewModel };
            SetBinding(VisualStateProperty, visualStateBinding);

            var sensorChooserBinding = new Binding("KinectSensorChooser") { Source = this };
            BindingOperations.SetBinding(viewModel, KinectSensorChooserUIViewModel.KinectSensorChooserProperty, sensorChooserBinding);

            var isListeningBinding = new Binding("IsListening") { Source = this };
            BindingOperations.SetBinding(viewModel, KinectSensorChooserUIViewModel.IsListeningProperty, isListeningBinding);

            this.expandedPopup.LayoutUpdated += this.ExpandedPopupOnLayoutUpdated;
        }
        /// <summary>
        /// Initializes a new instance of the KinectSensorChooserUI class
        /// </summary>
        public KinectSensorChooserUI()
        {
            Loaded   += OnLoaded;
            Unloaded += OnUnloaded;

            this.InitializeComponent();
            this.popupCloseCheck = new DispatcherTimer(
                TimeSpan.FromMilliseconds(1000), DispatcherPriority.Normal, this.OnPopupCloseCheckFired, this.Dispatcher);

            var viewModel = new KinectSensorChooserUIViewModel();

            this.layoutRoot.DataContext = viewModel;

            var visualStateBinding = new Binding("VisualState")
            {
                Source = viewModel
            };

            SetBinding(VisualStateProperty, visualStateBinding);

            var sensorChooserBinding = new Binding("KinectSensorChooser")
            {
                Source = this
            };

            BindingOperations.SetBinding(viewModel, KinectSensorChooserUIViewModel.KinectSensorChooserProperty, sensorChooserBinding);

            var isListeningBinding = new Binding("IsListening")
            {
                Source = this
            };

            BindingOperations.SetBinding(viewModel, KinectSensorChooserUIViewModel.IsListeningProperty, isListeningBinding);

            this.expandedPopup.LayoutUpdated += this.ExpandedPopupOnLayoutUpdated;
        }