donandren
cd3d002cc9
added failing unit test for #651
10 years ago
Steven Kirk
209713e820
Moved tests to correct place.
@donandren correctly identified a problem with the `ItemsPresenter` but
he put the tests in the `ListBox` tests. Moved them to the correct
place. Also tweak formatting in `ItemContainerGenerator.InsertSpace`.
10 years ago
donandren
af8fbba51b
added failing unit test for ItemsPresenter
10 years ago
Steven Kirk
1c88b3bd85
Fix scrolling to item when size == 0,0
When virtualized presenter size == 0,0 no containers will be
materialized so no container will be found.
Fixes #591 .
10 years ago
Steven Kirk
dd728dae5b
Fix measuring to infinity when scrolled to end.
When a virtualized list was scrolled to the bottom and then the list was
measured with a size larger than needed to fit all items (in this case
we use infinity) then the virtualizer tries to go backwards to add items
at the top of the currently visible items by setting `step = -1`;
however it didn't check whether the current index was < 0.
Fixes #589 .
10 years ago
Steven Kirk
5a72ed8586
Don't add virt items when attached to visual tree.
Don't add virtualized items before the virtualizing panel is attached to
the visual tree, as bindings etc won't be set and so measurement will
produce 0,0 causing all items to be materialized.
10 years ago
donandren
e8be30ac47
Added few more failing tests for ContentPresenter for LogicalChildren outside template
10 years ago
donandren
fd787ae405
added failing test for ContentPresenter when Content is changed and child is not detached from logical tree
10 years ago
Steven Kirk
dc8d05d0c3
Handle partial last items when items added.
Fixes #565 .
10 years ago
Steven Kirk
04c48bbd54
Make adding items work.
When virtualizing panel is not yet full.
10 years ago
Steven Kirk
7010272985
Reset first/next indexes on items nulled.
Fixes #563 .
10 years ago
Steven Kirk
63c2cd41fd
Add containers on Items reset.
If new items have been added on Reset and the panel was not previously
full, then create containers for the new items. Fixes #561 .
10 years ago
Steven Kirk
7b3e25949e
Revert "Revert "Set ContentPresenter.DataContext in UpdateChild.""
This reverts commit bf02ae41a9 .
10 years ago
Steven Kirk
bf02ae41a9
Revert "Set ContentPresenter.DataContext in UpdateChild."
This reverts commit f3c7ea27a1 .
10 years ago
Steven Kirk
95eefa3cf1
Implement AutoScrollToSelectedItem
For virtualizing lists.
10 years ago
Steven Kirk
d7a757385a
Fix failing tests.
10 years ago
Steven Kirk
d0942f84a9
FocusNavigationDirection => NavigationDirection
And added page up/down.
10 years ago
Steven Kirk
13642613cf
Added failing test.
10 years ago
Steven Kirk
4c000b9ce4
Fixed ScrollContentPresenter.
Did not react correctly to child changing.
10 years ago
Steven Kirk
5467841e3e
Fixed unit test name.
10 years ago
Steven Kirk
32760bbc08
Fix changing virtualization mode in theory.
That is; tests pass. In practise in the virtualization test app it still
doesn't quite work.
10 years ago
Steven Kirk
ae2ea31c6e
Allow changing virtualization mode in test app.
Not yet working correctly.
10 years ago
Steven Kirk
e8dd81fa20
Support horiz keyboard movement.
10 years ago
Steven Kirk
cba5200645
Fix keyboard nav with partially visible items.
10 years ago
Steven Kirk
81b66596c0
Use a full item's offset for overflow.
10 years ago
Steven Kirk
acdf599dec
Initial impl. of scrolling with arrow keys.
- Currently only vertical implemented
- Doesn't handle partially visible items at end of list
10 years ago
Steven Kirk
f660da41c7
Fix virtualized list to taking up available space.
Previous commit was slightly wrong: too many controls were being created
for the list in VirtualizingTest.
10 years ago
Steven Kirk
71b3343097
Allow virtualized list to take up available space.
10 years ago
Steven Kirk
f3c7ea27a1
Set ContentPresenter.DataContext in UpdateChild.
Thus delaying any changes that changing the data context would make
until we know we have the correct child.
10 years ago
Steven Kirk
d717b46112
Fixed DevTools.
- Set `InheritanceParent` before Parent so that control doesn't
initially inherit the wrong DataContext
- Don't set `InheritanceParent` when setting `Parent` if
`InheritanceParent` already set
- Added `IDataTemplate.SupportsRecycling`
10 years ago
Steven Kirk
35c4835ae4
Recycle DataTemplates.
If a `ContentPresenter`s content is assigned a value which matches the
current `DataTemplate` then just change the
`ContentPresenter.DataContext` and the existing item will update itself.
10 years ago
Steven Kirk
89ca4857f0
Tweaked a couple of tests.
10 years ago
Steven Kirk
fbb7ea759b
Make ItemContainerGenerator create containers
Make the untyped ItemContainerGenerator create `ContentPresenter`
containers when the data isn't a control. This is required for correct
binding to `DataContext` in a data template.
10 years ago
Steven Kirk
e686786959
Use dictionary to track item containers.
Because even when virtualized we were still creating a list the size of
the Items collection to store the containers. Using Dictionary here
still isn't ideal - we'd ideally use some sort of sparse array but that
can be optimized later.
10 years ago
Steven Kirk
6e73244a1e
Handle move and replace in virtualized lists.
10 years ago
Steven Kirk
7ca7f53537
More work on items removed.
10 years ago
Steven Kirk
72ea9f02c7
More work on virtualization with INCC.
Got removes working a bit better.
10 years ago
Dan Walmsley
1417aab362
added some more test cases for simple virtualization.
10 years ago
danwalmsley
e2fe94cafb
Added test for removing last item in the list, when scrolled to end.
10 years ago
Steven Kirk
3e8a8c6d7c
WIP: INCC virtualization support.
10 years ago
Steven Kirk
722a329106
Add containers at beginning when scrolled to end.
10 years ago
Steven Kirk
6df5ff4917
Split virtualization tests in two
One for base virtualization tests and one for simple mode tests.
10 years ago
Steven Kirk
7f09154020
Correctly handle partially obscured items.
And move logical for selecting horizontal/vertical components of
extent/offset/viewport into `ItemVirtualizer` base class.
10 years ago
Steven Kirk
749c32ace6
Added failing partial item tests.
10 years ago
Steven Kirk
2d4151ddfe
Update containers when Items changes.
10 years ago
Steven Kirk
55f05defd1
Make scrolling up >= 1 page work
10 years ago
Steven Kirk
b44589e0cb
Renamed IScrollable -> ILogicalScrollable
We're going to need IScrollable as an interface to ScrollViewer-type
controls.
10 years ago
Steven Kirk
03c138ff90
Delegate ScrollIntoView to ItemVirtualizer.
This doesn't make sense for ItemVirtualizationMode.Simple so we do
nothing here.
10 years ago
Steven Kirk
fa3550882a
Handle scrolling >1 page.
10 years ago
Steven Kirk
1d83126d20
More WIP on virtualization.
Kinda nearly working in the test app.
10 years ago