Exemple #1
0
        /// <summary>
        ///     Bind the ObservableCollection
        /// </summary>
        /// <param name="data"></param>
        public void Bind(object data)
        {
            if (DataList != null)
            {
                DataList.OnObjectAdd    -= OnAdd;
                DataList.OnObjectInsert -= OnInsert;
                DataList.OnClear        -= OnClear;
                DataList.OnObjectRemove -= OnRemove;
            }

            foreach (var item in Children)
            {
                item.DataInstance = null;

                Recycle(item.gameObject);
            }

            DataList = null;
            OnClear();
            StopAllCoroutines();

            if (data is IObservableCollection)
            {
                DataList = data as IObservableCollection;

                StartCoroutine(AddAsync(DataList.GetObjects()));

                DataList.OnObjectAdd    += OnAdd;
                DataList.OnObjectInsert += OnInsert;
                DataList.OnClear        += OnClear;
                DataList.OnObjectRemove += OnRemove;

                IsLoaded = true;
            }
            else if (data is IEnumerable)
            {
                var a = data as IEnumerable;

                StartCoroutine(AddAsync(a.Cast <object>()));
                IsLoaded = true;
            }
        }
        /// <summary>
        ///     Bind the ObservableCollection
        /// </summary>
        /// <param name="data"></param>
        public void Bind(object data)
        {
            if (DataList != null)
            {
                DataList.OnObjectAdd    -= OnAdd;
                DataList.OnObjectInsert -= OnInsert;
                DataList.OnClear        -= OnClear;
                DataList.OnObjectRemove -= OnRemove;
            }

            DataList = null;
            OnClear();

            if (data is IObservableCollection)
            {
                DataList = data as IObservableCollection;

                foreach (var d in DataList.GetObjects())
                {
                    OnAdd(d);
                }

                DataList.OnObjectAdd    += OnAdd;
                DataList.OnObjectInsert += OnInsert;
                DataList.OnClear        += OnClear;
                DataList.OnObjectRemove += OnRemove;
            }
            else if (data is IEnumerable)
            {
                var list = data as IEnumerable;
                foreach (var d in list)
                {
                    OnAdd(d);
                }
            }

            //Hack, not refreshing
            var cache = Element.value;

            Element.value = cache;
        }
        /// <summary>
        ///     Bind the ObservableCollection
        /// </summary>
        /// <param name="data"></param>
        public void Bind(object data)
        {
            if (DataList != null)
            {
                DataList.OnObjectAdd -= OnAdd;
                DataList.OnObjectInsert -= OnInsert;
                DataList.OnClear -= OnClear;
                DataList.OnObjectRemove -= OnRemove;
            }

            foreach (var item in Children)
            {
                item.DataInstance = null;

                Recycle(item.gameObject);
            }

            DataList = null;
            OnClear();
            StopAllCoroutines();

            if (data is IObservableCollection)
            {
                DataList = data as IObservableCollection;

                StartCoroutine(AddAsync(DataList.GetObjects()));

                DataList.OnObjectAdd += OnAdd;
                DataList.OnObjectInsert += OnInsert;
                DataList.OnClear += OnClear;
                DataList.OnObjectRemove += OnRemove;

                IsLoaded = true;
            }
            else if (data is IEnumerable)
            {
                var a = data as IEnumerable;

                StartCoroutine(AddAsync(a.Cast<object>()));
                IsLoaded = true;
            }
        }