public void Set_focus_on_empty_grid() { WpfTestHelper.WithWindow2(async w => { var grid = new DataGrid2(); w.Content = grid; await grid.WaitLoaded(); Assert.IsFalse(grid.IsKeyboardFocusWithin); var point = grid.PointToScreen(new Point(3, 3)); Mouse.MoveTo(new System.Drawing.Point((int)point.X, (int)point.Y)); Mouse.Click(MouseButton.Left); await w.WaitIdle(); Assert.IsTrue(grid.IsKeyboardFocusWithin); }); }
public void Do_not_reset_data_grid_focus() { WpfTestHelper.WithWindow2(async w => { var grid = new DataGrid2(); grid.AutoGenerateColumns = false; grid.Columns.Add(new DataGridTextColumn { Binding = new Binding("Items") }); w.Content = grid; grid.ItemsSource = Enumerable.Range(1, 100).Select(i => Tuple.Create(i.ToString())).ToList(); await grid.WaitLoaded(); DataGridHelper.Focus(grid); grid.ItemsSource = Enumerable.Range(500, 100).Select(i => Tuple.Create(i.ToString())).ToList(); await w.WaitIdle(); Assert.IsTrue(grid.IsKeyboardFocusWithin); Assert.IsInstanceOf <DataGridCell>(Keyboard.FocusedElement); }); }
public void Searchable_column() { WpfTestHelper.WithWindow2(async w => { var model = new SearchableModel(); var grid = new DataGrid2(); grid.DataContext = model; BindingOperations.SetBinding(grid, DataGrid.ItemsSourceProperty, new Binding("Items.Value")); BindingOperations.SetBinding(grid, SearchableDataGridColumn.SearchTermProperty, new Binding("Term.Value")); grid.AutoGenerateColumns = false; grid.Columns.Add(new SearchableDataGridColumn { Binding = new Binding("Item1"), HighlightStyle = new Style { Setters = { new Setter(TextElement.BackgroundProperty, Brushes.Red) } } }); w.Content = grid; await grid.WaitLoaded(); await w.WaitIdle(); model.Items.Value = Enumerable.Range(0, 49).Select(i => Tuple.Create(i.ToString())).ToList(); await w.WaitIdle(); model.Term.Value = "5"; model.Items.Value = Enumerable.Range(50, 100).Select(i => Tuple.Create(i.ToString())).ToList(); await w.WaitIdle(); var row = grid.Descendants <DataGridRow>().First(r => ((Tuple <String>)r.DataContext).Item1 == "50"); var text = row.Descendants <TextBlock>().First(); Assert.AreEqual("50", text.Text); var inlines = text.Inlines.OfType <Run>().ToArray(); Assert.AreEqual("5", inlines[0].Text); Assert.AreEqual("0", inlines[1].Text); }); }