예제 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="oldVal"></param>
        /// <param name="newVal"></param>
        private static void OnItemTemplateChanged(BindableObject obj, object oldVal, object newVal)
        {
            AdvancedStackList layout = obj as AdvancedStackList;

            if (layout != null && layout.ItemsSource != null)
            {
                layout.FillLayout();
            }
        }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="oldVal"></param>
        /// <param name="newVal"></param>
        private static void OnItemsSourceChanged(BindableObject obj, object oldVal, object newVal)
        {
            AdvancedStackList layout = obj as AdvancedStackList;

            if (layout.ItemTemplate != null)
            {
                layout.FillLayout();

                if (newVal != null && newVal is INotifyCollectionChanged)
                {
                    //
                    // TODO: unsubscribe from the event when current
                    //
                    if (oldVal != null && oldVal is INotifyCollectionChanged)
                    {
                        ((INotifyCollectionChanged)newVal).CollectionChanged -= layout.StackList_CollectionChanged;
                    }

                    ((INotifyCollectionChanged)newVal).CollectionChanged += layout.StackList_CollectionChanged;
                }
            }
        }