Ejemplo n.º 1
0
		void Attach()
		{
			Detach();

			if (target != null && binding != null)
			{
				listener = GetListener();
				listener.Attach(target, binding);
			}
		}
Ejemplo n.º 2
0
        void Attach()
        {
            Detach();

            if (target != null && binding != null)
            {
                listener = GetListener();
                listener.Attach(target, binding);
            }
        }
Ejemplo n.º 3
0
        static void element_Loaded(object sender, RoutedEventArgs e)
        {
            FrameworkElement element = (FrameworkElement)sender;

            element.Loaded -= element_Loaded;
            ScrollViewer scrollViewer = FindChildOfType <ScrollViewer>(element);

            if (scrollViewer == null)
            {
                throw new InvalidOperationException("ScrollViewer not found.");
            }

            var listener = new DependencyPropertyListener();

            listener.Changed
                += delegate
                {
                bool atBottom = scrollViewer.VerticalOffset
                                >= scrollViewer.ScrollableHeight;

                if (atBottom)
                {
                    var atEnd = GetAtEndCommand(element);
                    if (atEnd != null)
                    {
                        atEnd.Execute(null);
                    }
                }
                };
            Binding binding = new Binding("VerticalOffset")
            {
                Source = scrollViewer
            };

            listener.Attach(scrollViewer, binding);
        }