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)); }
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; } } } } }
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; } }