ReadReflexiveChildren() public method

public ReadReflexiveChildren ( Assembly.Metro.Controls.PageTemplates.Games.Components.MetaData.ReflexiveData reflexive ) : void
reflexive Assembly.Metro.Controls.PageTemplates.Games.Components.MetaData.ReflexiveData
return void
Example #1
0
        private void ReflexivePropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            var reflexive = (ReflexiveData)sender;
            FlattenedReflexive flattenedField = _flattenInfo[reflexive];

            if (e.PropertyName == "IsExpanded")
            {
                if (reflexive.IsExpanded)
                {
                    flattenedField.Expand();
                }
                else
                {
                    flattenedField.Contract();
                }
            }
            else if (!_loading &&
                     (e.PropertyName == "CurrentIndex" || e.PropertyName == "FirstEntryAddress" || e.PropertyName == "EntrySize"))
            {
                _loading         = true;
                _tracker.Enabled = false;

                if (e.PropertyName == "FirstEntryAddress")
                {
                    // Throw out any cached changes and reset the current index
                    RecursiveReset(flattenedField.LoadedFields);
                    if (reflexive.Length > 0)
                    {
                        reflexive.CurrentIndex = 0;
                    }
                    else
                    {
                        reflexive.CurrentIndex = -1;
                    }
                }
                else
                {
                    // Cache any changes made to the current page
                    RecursiveUnload(flattenedField.LoadedFields);
                }

                // Load the new page in
                flattenedField.LoadPage(reflexive, reflexive.CurrentIndex);

                // Read any non-cached fields in the page
                _reader.ReadReflexiveChildren(reflexive);
                RecursiveLoad(flattenedField.LoadedFields);

                _tracker.Enabled = true;
                _loading         = false;
            }
        }