Проверьте видимые строки в WPF DataGrid

Спасибо, что нашли время ответить. Я попробовал ваш вариант и не смог как-то заставить его работать.

Я пытался вставить вложенные операторы if в кодовый блок def Enter_presssed (event), и он работает до определенного момента. Он распознает первое «если» и последнее «еще», но не промежуточные и другие между ними.

Разве программа не должна видеть и использовать каждый новый input_get после нажатия Return в качестве ответа на последний вопрос, отображаемый в виджете «Текст»?

7
задан Danny Beckett 18 December 2014 в 13:05
поделиться

2 ответа

Это - вид сверхсложного способа сделать его, но это может работать. Во-первых, разделите DataGridRowsPresenter на подклассы и переопределите метод OnViewportOffsetChanged. Затем копируйте стандартный шаблон управления для datagrid и замените DataGridRowsPresenter Вашим собственным. Я оставляю детали тестирования хита на строку относительно области просмотра до Вас ;-).

Что Вы пытаетесь выполнить, конкретно? Возможно, мы можем придумать лучший путь, поскольку это может быть очень хрупким и требует набора дополнительной работы (т.е. хранение шаблона управления в синхронизации, если они обновляют его).

0
ответ дан 7 December 2019 в 10:08
поделиться

У меня сработал следующий метод:

// mHorizontalScrollBar is the HorizontalScrollBar subclass control's instance

// Get the total item count
nTotalCount = DataGrid1.Items.Count; 

// Get the first visible row index 
nFirstVisibleRow = mHorizontalScrollBar.Value;

// Get the last visible row index
nLastVisibleRow = nFirstVisibleRow + nTotalCount - mHorizontalScrollBar.Maximum;
3
ответ дан 7 December 2019 в 10:08
поделиться
Другие вопросы по тегам:

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