Как к автопрокрутке на WPF datagrid

Чтобы сопоставить все символы, кроме перечисленных, используйте инвертированный набор символов [^…] :

$chars = "0123456789!&',-./abcdefghijklmnopqrstuvwxyz\n";
$pattern = "/[^".preg_quote($chars, "/")."]/";

Здесь preg_quote используется для выхода некоторые специальные символы, так что они интерпретируются как буквальные символы.

Вы также можете использовать диапазоны символов для выражения перечисленных символов:

$pattern = "/[^0-9!&',-.\\/a-z\n]/";

В этом случае не имеет значения, экранирован литерал - в ,-. или нет. Потому что ,-. интерпретируется как диапазон символов от , (0x2C) до . (0x2E), который уже содержит - (0x2D) между ними.

Затем вы можете удалить те символы, которые соответствуют preg_replace :

$output = preg_replace($pattern, "", $str);

35
задан Teun D 21 July 2016 в 10:23
поделиться

5 ответов

;)

if (mainDataGrid.Items.Count > 0)
{
    var border = VisualTreeHelper.GetChild(mainDataGrid, 0) as Decorator;
    if (border != null)
    {
        var scroll = border.Child as ScrollViewer;
        if (scroll != null) scroll.ScrollToEnd();
    }
}
43
ответ дан 27 November 2019 в 06:24
поделиться

Вам нужно получить ссылку на объект ScrollViewer для вашей DataGrid. Затем вы можете управлять свойством VerticalOffset для прокрутки вниз.

Чтобы добавить еще больше бликов в ваше приложение ... вы можете добавить анимацию сплайна к прокрутке, чтобы все выглядело на одном уровне с остальной частью приложения.

0
ответ дан 27 November 2019 в 06:24
поделиться

Вы должны использовать метод datagrid

datagrid.ScrollIntoView(itemInRow);

или

datagrid.ScrollIntoView(itemInRow, column);

этот способ позволяет не возиться с поиском средства просмотра прокрутки и т.д.

49
ответ дан 27 November 2019 в 06:24
поделиться
listbox.Add(foo);
listbox.SelectedIndex = count - 1;
listbox.ScrollIntoView(listbox.SelectedItem);
listbox.SelectedIndex = -1;
6
ответ дан 27 November 2019 в 06:24
поделиться

для больших данных datagrid.ScrollIntoView (itemInRow, столбец); not работает нормально, тогда нам нужно использовать только один ниже:

if (mainDataGrid.Items.Count > 0) 
        { 
            var border = VisualTreeHelper.GetChild(mainDataGrid, 0) as Decorator; 
            if (border != null) 
            { 
                var scroll = border.Child as ScrollViewer; 
                if (scroll != null) scroll.ScrollToEnd(); 
            } 
        } 
3
ответ дан 27 November 2019 в 06:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: