New 3.5 SP1 features: ScrollViewer.IsDeferredScrollingEnabled; AlternationCount;IEditableCollectionView
3 more features which go hand in hand are the:
· ScrollViewer.IsDeferredScrollingEnabled
· AlternationCount
· IEditableCollectionView
All the above have been used in a sample which looks like this - it supports add/delete/cancel (escape key) operations
ScrollViewer.IsDeferredScrollingEnabled
This is an opt in features which provides a perceived performance improvement. What it does is that content doesn’t scroll while the scrollbar is in action. Once you stop the content refreshes to the new scrolled value. In this case you avoid the possible jitter motion in scrolling.
Usage: <ListBox ScrollViewer.IsDeferredScrollingEnabled="true”>
Alternation Count
This allows setting alternating properties on rows of an items Control. A lot of our customers have been writing the alternating color of listboxes, listviews,… Now it’s a few lines code which gives you this functionality J
Usage: <Style.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="0">
<Setter Property="Background" Value="LightBlue"></Setter>
</Trigger>
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
<Setter Property="Background" Value="Maroon"></Setter>
<Setter Property="Foreground" Value="White"></Setter>
</Trigger>
</Style.Triggers>
<ListBox AlternationCount="2">
IeditableCollectionView
Now with this feature you can easily add/remove/edit items in a collection. Do I hear some shouts of joy
The first step is to implement the IEditableObject interface. This requires implementing
· BeginEdit à store the current value in a temp variable/object
· CancelEdit à Restore the temp value into the current object
· EndEdit à clear the temp value
That’s it for your data changes. Now for the operations itself. First you get hold of the IEditiableCollectionView since it exposes the operations.
(IEditableCollectionView)(CollectionViewSource.GetDefaultView(itemsList.Items));
This class exposes the following functions
iecv.AddNew();
iecv.EditItem();
iecv.CommitNew();
iecv.CommitEdit();
iecv.CancelNew();
iecv.CancelEdit();
The code is attached. Have fun.
ScrollViewerFunctionalities.zip
Comments
Anonymous
June 06, 2008
PingBack from http://www.alvinashcraft.com/2008/06/06/dew-drop-june-6-2008/Anonymous
June 09, 2008
Lester - you may want to call out that these new features are specific to the .Net 3.5 SP1 framework, due out later this year. It is not "obvious" from the content, other than the Tags listed at the end (which are not always displayed in RSS Readers.) Perhaps editing / rewording the first sentence to read "3 more features available in .Net 3.5 SP1 which go hand in hand are the:..."