private void ChangeDataSource(ItemsSourceView newValue)
        {
            var oldValue = m_dataSource;

            if (oldValue != newValue)
            {
                // update to the new datasource.

                if (oldValue != null)
                {
                    oldValue.CollectionChanged -= OnDataSourceChanged;
                }

                Clear();

                m_dataSource = newValue;
                SyncAndInitVectorFlagsWithID(NavigationViewSplitVectorID.NotInitialized, DefaultAttachedData());

                if (newValue != null)
                {
                    newValue.CollectionChanged += OnDataSourceChanged;
                }
            }

            // Move all to primary list
            MoveItemsToVector(NavigationViewSplitVectorID.NotInitialized);
        }
Esempio n. 2
0
 public void ValidateGetSetItemsSource()
 {
     RunOnUIThread.Execute(() =>
     {
         ItemsRepeater repeater = new ItemsRepeater();
         var dataSource         = new ItemsSourceView(Enumerable.Range(0, 10).Select(i => string.Format("Item #{0}", i)));
         repeater.SetValue(ItemsRepeater.ItemsSourceProperty, dataSource);
         Verify.AreSame(dataSource, repeater.GetValue(ItemsRepeater.ItemsSourceProperty) as ItemsSourceView);
         Verify.AreSame(dataSource, repeater.ItemsSourceView);
     });
 }
 // The raw data is from MenuItems or MenuItemsSource
 public void SetDataSource(object rawData)
 {
     if (ShouldChangeDataSource(rawData)) // avoid to create multiple of datasource for the same raw data
     {
         ItemsSourceView dataSource = null;
         if (rawData != null)
         {
             dataSource = new InspectingDataSource(rawData);
         }
         ChangeDataSource(dataSource);
         m_rawDataSource = rawData;
         if (dataSource != null)
         {
             MoveAllItemsToPrimaryList();
         }
     }
 }