public virtual void NoItemsOutsideOfTree()
 {
     int[] source = new int[] { 1, 2, 3 };
     HeaderedItemsControl items = new HeaderedItemsControl { ItemsSource = source };
     for (int i = 0; i < items.Items.Count; i++)
     {
         Assert.AreEqual(source[i], items.Items[i], "Item {0} has unexpected value", i);
         Assert.IsNull(items.ItemContainerGenerator.ContainerFromIndex(i), "Container {0} should be null!", i);
     }
 }
 public virtual void ItemsCreatedInTree()
 {
     int[] source = new int[] { 1, 2, 3 };
     HeaderedItemsControl items = new HeaderedItemsControl { ItemsSource = source };
     TestAsync(
         items,
         () =>
         {
             for (int i = 0; i < items.Items.Count; i++)
             {
                 Assert.AreEqual(source[i], items.Items[i], "Item {0} has unexpected value", i);
                 Assert.IsNotNull(items.ItemContainerGenerator.ContainerFromIndex(i), "Container {0} should not be null!", i);
             }
         });
 }
        public virtual void GetContainerFromIndex()
        {
            int[] source = new int[] { 1, 2, 3 };
            HeaderedItemsControl items = new HeaderedItemsControl { ItemsSource = source };
            TestAsync(
                items,
                () =>
                {
                    for (int i = 0; i < items.Items.Count; i++)
                    {
                        DependencyObject container = items.ItemContainerGenerator.ContainerFromIndex(i);
                        Assert.IsNotNull(container, "Container {0} should not be null!", i);

                        ContentPresenter presenter = container as ContentPresenter;
                        Assert.IsNotNull(presenter, "Presenter {0} should not be null!", i);
                        Assert.AreEqual(items.Items[i], presenter.Content, "Item {0} has unexpected value", i);
                    }
                });
        }
 public static IObservable <EventPattern <KeyEventArgs> > KeyUpObserver(this HeaderedItemsControl This)
 {
     return(Observable.FromEventPattern <KeyEventHandler, KeyEventArgs>(h => This.KeyUp += h, h => This.KeyUp -= h));
 }
Example #5
0
 private static void BindContainerStyle(bool dragInBackground, HeaderedItemsControl ic, Type eltType)
 {
     ic.ItemContainerStyle = ItemContainerStyle(ic.ItemContainerStyle, eltType, dragInBackground);
 }
 public virtual void GetContainerFromItemNotInCollection()
 {
     int[] source = new int[] { 1, 2, 3 };
     HeaderedItemsControl items = new HeaderedItemsControl { ItemsSource = source };
     TestAsync(
         items,
         () => Assert.IsNull(items.ItemContainerGenerator.ContainerFromItem(4), "Found no container for 4!"),
         () => Assert.IsNull(items.ItemContainerGenerator.ContainerFromItem(new object()), "Found no container for new object!"),
         () => Assert.IsNull(items.ItemContainerGenerator.ContainerFromItem(new object()), "Found no container for null!"));
 }
 public virtual void GetContainerFromIndexNoItems()
 {
     int[] source = new int[] { 1, 2, 3 };
     HeaderedItemsControl items = new HeaderedItemsControl { ItemsSource = source };
     TestAsync(
         items,
         () => Assert.IsNotNull(items.ItemContainerGenerator.ContainerFromIndex(0), "Index 0 should not return null!"),
         () => items.ItemsSource = null,
         () => Assert.IsNull(items.ItemContainerGenerator.ContainerFromIndex(0), "Index 0 should return null after clearing!"));
 }
 public virtual void GetContainerFromIndexOutOfRange()
 {
     int[] source = new int[] { 1, 2, 3 };
     HeaderedItemsControl items = new HeaderedItemsControl { ItemsSource = source };
     TestAsync(
         items,
         // () => Assert.IsNull(items.ItemContainerGenerator.ContainerFromIndex(-1), "Index -1 should return null!"), WPF throws IndexOutOfRange
         () => Assert.IsNull(items.ItemContainerGenerator.ContainerFromIndex(3), "Index 3 should return null!"),
         () => Assert.IsNull(items.ItemContainerGenerator.ContainerFromIndex(4), "Index 3 should return null!"),
         // () => Assert.IsNull(items.ItemContainerGenerator.ContainerFromIndex(int.MinValue), "Index int.MinValue should return null!"), WPF throws IndexOutOfRange
         () => Assert.IsNull(items.ItemContainerGenerator.ContainerFromIndex(int.MaxValue), "Index int.MaxValue should return null!"));
 }
 public static IObservable <EventPattern <StylusEventArgs> > StylusOutOfRangeObserver(this HeaderedItemsControl This)
 {
     return(Observable.FromEventPattern <StylusEventHandler, StylusEventArgs>(h => This.StylusOutOfRange += h, h => This.StylusOutOfRange -= h));
 }
 public static IObservable <EventPattern <QueryCursorEventArgs> > QueryCursorObserver(this HeaderedItemsControl This)
 {
     return(Observable.FromEventPattern <QueryCursorEventHandler, QueryCursorEventArgs>(h => This.QueryCursor += h, h => This.QueryCursor -= h));
 }
 public static IObservable <EventPattern <MouseEventArgs> > GotMouseCaptureObserver(this HeaderedItemsControl This)
 {
     return(Observable.FromEventPattern <MouseEventHandler, MouseEventArgs>(h => This.GotMouseCapture += h, h => This.GotMouseCapture -= h));
 }
 public static IObservable <EventPattern <MouseButtonEventArgs> > MouseDoubleClickObserver(this HeaderedItemsControl This)
 {
     return(Observable.FromEventPattern <MouseButtonEventHandler, MouseButtonEventArgs>(h => This.MouseDoubleClick += h, h => This.MouseDoubleClick -= h));
 }
 public static IObservable <EventPattern <MouseEventArgs> > MouseEnterObserver(this HeaderedItemsControl This)
 {
     return(Observable.FromEventPattern <MouseEventHandler, MouseEventArgs>(h => This.MouseEnter += h, h => This.MouseEnter -= h));
 }
 public static IObservable <EventPattern <MouseWheelEventArgs> > PreviewMouseWheelObserver(this HeaderedItemsControl This)
 {
     return(Observable.FromEventPattern <MouseWheelEventHandler, MouseWheelEventArgs>(h => This.PreviewMouseWheel += h, h => This.PreviewMouseWheel -= h));
 }
 public static IObservable <EventPattern <MouseButtonEventArgs> > PreviewMouseRightButtonDownObserver(this HeaderedItemsControl This)
 {
     return(Observable.FromEventPattern <MouseButtonEventHandler, MouseButtonEventArgs>(h => This.PreviewMouseRightButtonDown += h, h => This.PreviewMouseRightButtonDown -= h));
 }
 public static IObservable <EventPattern <KeyboardFocusChangedEventArgs> > PreviewGotKeyboardFocusObserver(this HeaderedItemsControl This)
 {
     return(Observable.FromEventPattern <KeyboardFocusChangedEventHandler, KeyboardFocusChangedEventArgs>(h => This.PreviewGotKeyboardFocus += h, h => This.PreviewGotKeyboardFocus -= h));
 }
 public static IObservable <EventPattern <DependencyPropertyChangedEventArgs> > DataContextChangedObserver(this HeaderedItemsControl This)
 {
     return(Observable.FromEventPattern <DependencyPropertyChangedEventHandler, DependencyPropertyChangedEventArgs>(h => This.DataContextChanged += h, h => This.DataContextChanged -= h));
 }
 public static IObservable <EventPattern <StylusSystemGestureEventArgs> > PreviewStylusSystemGestureObserver(this HeaderedItemsControl This)
 {
     return(Observable.FromEventPattern <StylusSystemGestureEventHandler, StylusSystemGestureEventArgs>(h => This.PreviewStylusSystemGesture += h, h => This.PreviewStylusSystemGesture -= h));
 }
 public virtual void GetContainerFromIndexNoItemsHost()
 {
     int[] source = new int[] { 1, 2, 3 };
     HeaderedItemsControl items = new HeaderedItemsControl { ItemsSource = source };
     Assert.IsNull(items.ItemContainerGenerator.ContainerFromIndex(0), "Index 0 should return null!");
     Assert.IsNull(items.ItemContainerGenerator.ContainerFromIndex(1), "Index 1 should return null!");
     Assert.IsNull(items.ItemContainerGenerator.ContainerFromIndex(2), "Index 2 should return null!");
 }
 public static IObservable <EventPattern <DataTransferEventArgs> > SourceUpdatedObserver(this HeaderedItemsControl This)
 {
     return(Observable.FromEventPattern <EventHandler <DataTransferEventArgs>, DataTransferEventArgs>(h => This.SourceUpdated += h, h => This.SourceUpdated -= h));
 }
        public virtual void GetContainerFromItemWithReferenceTypes()
        {
            string[] source = new string[] { "Hello", "World" };
            HeaderedItemsControl items = new HeaderedItemsControl { ItemsSource = source };
            TestAsync(
                items,
                () =>
                {
                    for (int i = 0; i < items.Items.Count; i++)
                    {
                        DependencyObject container = items.ItemContainerGenerator.ContainerFromItem(source[i]);
                        Assert.IsNotNull(container, "Container {0} should not be null!", i);

                        ContentPresenter presenter = container as ContentPresenter;
                        Assert.IsNotNull(presenter, "Presenter {0} should not be null!", i);
                        Assert.AreEqual(source[i], presenter.Content, "Item {0} has unexpected value", i);
                    }
                });
        }
 public static IObservable <EventPattern <StylusEventArgs> > LostStylusCaptureObserver(this HeaderedItemsControl This)
 {
     return(Observable.FromEventPattern <StylusEventHandler, StylusEventArgs>(h => This.LostStylusCapture += h, h => This.LostStylusCapture -= h));
 }
        public virtual void GetContainerFromItemWithSameValue()
        {
            int[] source = new int[] { 1, 1, 1, 1, 1, 1, 1 };
            HeaderedItemsControl items = new HeaderedItemsControl { ItemsSource = source };
            TestAsync(
                items,
                () =>
                {
                    // Get the first item
                    DependencyObject first = items.ItemContainerGenerator.ContainerFromIndex(0);

                    for (int i = 0; i < items.Items.Count; i++)
                    {
                        DependencyObject container = items.ItemContainerGenerator.ContainerFromItem(source[i]);
                        Assert.AreEqual(first, container, "Container for item {0} should be the first in the list!", i);
                    }
                });
        }
 public static IObservable <EventPattern <StylusButtonEventArgs> > StylusButtonDownObserver(this HeaderedItemsControl This)
 {
     return(Observable.FromEventPattern <StylusButtonEventHandler, StylusButtonEventArgs>(h => This.StylusButtonDown += h, h => This.StylusButtonDown -= h));
 }
 public static IObservable <EventPattern <StylusButtonEventArgs> > PreviewStylusButtonUpObserver(this HeaderedItemsControl This)
 {
     return(Observable.FromEventPattern <StylusButtonEventHandler, StylusButtonEventArgs>(h => This.PreviewStylusButtonUp += h, h => This.PreviewStylusButtonUp -= h));
 }
 public static IObservable <EventPattern <KeyEventArgs> > PreviewKeyDownObserver(this HeaderedItemsControl This)
 {
     return(Observable.FromEventPattern <KeyEventHandler, KeyEventArgs>(h => This.PreviewKeyDown += h, h => This.PreviewKeyDown -= h));
 }
        /// <summary>
        /// Prepare a PrepareHeaderedItemsControlContainer container for an
        /// item.
        /// </summary>
        /// <param name="control">Container to prepare.</param>
        /// <param name="item">Item to be placed in the container.</param>
        /// <param name="parentItemsControl">The parent ItemsControl.</param>
        /// <param name="parentItemContainerStyle">
        /// The ItemContainerStyle for the parent ItemsControl.
        /// </param>
        private static void PrepareHeaderedItemsControlContainer(HeaderedItemsControl control, object item, ItemsControl parentItemsControl, Style parentItemContainerStyle)
        {
            if (control != item)
            {
                // Copy the ItemsControl properties from parent to child
                DataTemplate parentItemTemplate = parentItemsControl.ItemTemplate;
                if (parentItemTemplate != null)
                {
                    control.SetValue(HeaderedItemsControl.ItemTemplateProperty, parentItemTemplate);
                }
                if (parentItemContainerStyle != null && HasDefaultValue(control, HeaderedItemsControl.ItemContainerStyleProperty))
                {
                    control.SetValue(HeaderedItemsControl.ItemContainerStyleProperty, parentItemContainerStyle);
                }

                // Copy the Header properties from parent to child
                if (control.HeaderIsItem || HasDefaultValue(control, HeaderedItemsControl.HeaderProperty))
                {
                    control.Header = item;
                    control.HeaderIsItem = true;
                }
                if (parentItemTemplate != null)
                {
                    control.SetValue(HeaderedItemsControl.HeaderTemplateProperty, parentItemTemplate);
                }
                if (parentItemContainerStyle != null && control.Style == null)
                {
                    control.SetValue(HeaderedItemsControl.StyleProperty, parentItemContainerStyle);
                }

                // Note: this is where we would apply the HeaderTemplateSelector
                // (if implemented) or attempt to lookup the implicit template
                // for the type of the item if the headerTemplate were null.

                // Setup a hierarchical template
                HierarchicalDataTemplate headerTemplate = parentItemTemplate as HierarchicalDataTemplate;
                if (headerTemplate != null)
                {
                    if (headerTemplate.ItemsSource != null && HasDefaultValue(control, HeaderedItemsControl.ItemsSourceProperty))
                    {
                        control.SetBinding(
                            HeaderedItemsControl.ItemsSourceProperty,
                            new Binding
                            {
                                Converter = headerTemplate.ItemsSource.Converter,
                                ConverterCulture = headerTemplate.ItemsSource.ConverterCulture,
                                ConverterParameter = headerTemplate.ItemsSource.ConverterParameter,
                                Mode = headerTemplate.ItemsSource.Mode,
                                NotifyOnValidationError = headerTemplate.ItemsSource.NotifyOnValidationError,
                                Path = headerTemplate.ItemsSource.Path,
                                Source = control.Header,
                                ValidatesOnExceptions = headerTemplate.ItemsSource.ValidatesOnExceptions
                            });
                    }
                    if (headerTemplate.IsItemTemplateSet && control.ItemTemplate == parentItemTemplate)
                    {
                        control.ClearValue(HeaderedItemsControl.ItemTemplateProperty);
                        if (headerTemplate.ItemTemplate != null)
                        {
                            control.ItemTemplate = headerTemplate.ItemTemplate;
                        }
                    }
                    if (headerTemplate.IsItemContainerStyleSet && control.ItemContainerStyle == parentItemContainerStyle)
                    {
                        control.ClearValue(HeaderedItemsControl.ItemContainerStyleProperty);
                        if (headerTemplate.ItemContainerStyle != null)
                        {
                            control.ItemContainerStyle = headerTemplate.ItemContainerStyle;
                        }
                    }
                }
            }
        }
Example #28
0
        private void TranslateOneElement(DependencyObject innerChild, LangIdEnum NewLang)
        {
            Label childTypeLabel = innerChild as Label;

            if (childTypeLabel != null && childTypeLabel.Content != null)
            {
                childTypeLabel.Content = GetTranslation(childTypeLabel.Content.ToString(), -1, NewLang);
                return;
            }
            Button childButton = innerChild as Button;

            if (childButton != null && childButton.Content != null)
            {
                childButton.Content = GetTranslation(childButton.Content.ToString(), -1, NewLang);
                return;
            }
            CheckBox childTypeCheckBox = innerChild as CheckBox;

            if (childTypeCheckBox != null && childTypeCheckBox.Content != null)
            {
                childTypeCheckBox.Content = GetTranslation(childTypeCheckBox.Content.ToString(), -1, NewLang);
                return;
            }
            RadioButton childTypeRadio = innerChild as RadioButton;

            if (childTypeRadio != null && childTypeRadio.Content != null)
            {
                childTypeRadio.Content = GetTranslation(childTypeRadio.Content.ToString(), -1, NewLang);
                return;
            }
            TextBlock childTypeTextBlock = innerChild as TextBlock;

            if (childTypeTextBlock != null && childTypeTextBlock.Text != null)
            {
                childTypeTextBlock.Text = GetTranslation(childTypeTextBlock.Text.ToString(), -1, NewLang);
                return;
            }

/*            TextBox childTypeTextbox = innerChild as TextBox;
 *          if (childTypeTextbox != null)
 *          {
 *              childTypeTextbox.Text = GetTranslation(childTypeTextbox.Text.ToString(), -1, NewLang);
 *              return;
 *          }*/
            HeaderedItemsControl childMenu = innerChild as HeaderedItemsControl;

            if (childMenu != null && childMenu.Header != null)
            {
                childMenu.Header = GetTranslation(childMenu.Header.ToString(), -1, NewLang);
                return;
            }
            GroupBox childGroup = innerChild as GroupBox;

            if (childGroup != null && childGroup.Header != null)
            {
                childGroup.Header = GetTranslation(childGroup.Header.ToString(), -1, NewLang);
                return;
            }
            Window childWindow = innerChild as Window;

            if (childWindow != null && childWindow.Title != null)
            {
                childWindow.Title = GetTranslation(childWindow.Title.ToString(), -1, NewLang);
                return;
            }
        }