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); }
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(); } } }