Microsoft.Phone.Controls.ListPicker.OnSelectedItemChanged C# (CSharp) Method

OnSelectedItemChanged() private method

private OnSelectedItemChanged ( object oldValue, object newValue ) : void
oldValue object
newValue object
return void
        private void OnSelectedItemChanged(object oldValue, object newValue)
        {
            if (null == Items || Items.Count == 0)
            {
                if (null == Template)
                {
                    // Can't set the value now; remember it for later
                    _deferredSelectedItem = newValue;
                    return;
                }
            }

            // Validate new value
            int newValueIndex = (null != newValue) ? Items.IndexOf(newValue) : -1;

            if ((-1 == newValueIndex) && (0 < Items.Count))
            {
                newValueIndex = -1;
            }

            // Synchronize SelectedIndex property
            if (!_updatingSelection)
            {
                _updatingSelection = true;
                SelectedIndex = newValueIndex;
                _updatingSelection = false;
            }

            // Switch to Normal mode or size for current item
            if (ListPickerMode.Normal != ListPickerMode)
            {
                ListPickerMode = ListPickerMode.Normal;
            }
            else
            {
                SizeForAppropriateView(false);
            }

            // Fire SelectionChanged event
            var handler = SelectionChanged;
            if (null != handler)
            {
                IList removedItems = (null == oldValue) ? new object[0] : new object[] { oldValue };
                IList addedItems = (null == newValue) ? new object[0] : new object[] { newValue };
                handler(this, new SelectionChangedEventArgs(removedItems, addedItems));
            }

            if (this.SelectedItem != null && this.SelectedIndex >= 0)
            {
                List<object> list = new List<object>();
                list.Add(this.SelectedItem);
                this.UpdateSummary(list);
            }
            else
            {
                this.UpdateSummary(new List<object>());
            }
        }

Same methods

ListPicker::OnSelectedItemChanged ( DependencyObject o, System.Windows.DependencyPropertyChangedEventArgs e ) : void