Windowscommunitytoolkit: 3.0 Breaking changes

Created on 13 Nov 2017  路  8Comments  路  Source: windows-toolkit/WindowsCommunityToolkit

These are the proposed breaking changed for 3.0 (this list will most likely grow)

  • [x] Change Expander.Header from string to object (done in #1475)
  • [x] Rename Extensions that cause naming collisions with platform types (re #1561) PR #1991
  • [x] Change HeaderedTextBlock to inherit from HeaderedContentControl
  • [x] Change Expander to inherit from HeaderedContentControl
  • [x] Remove AppPinManager (PR #1991)
  • [x] RangeSelector - Change StepFrequency default to 1.0
  • [x] RangeSelector - remove IsTouchOptimized
  • [x] NavigationViewExtensions to static
  • [ ] BladeView to properly support binding ItemsSource
  • [ ] Remove AdaptiveGridView.OneRowModeEnabled in favor of changing the ItemsPanel
  • [x] Namespace cleanup (re #1916)
introduce breaking changes mute-bot

Most helpful comment

I'd go even further and propose to remove the AdaptiveGridView completely in favor for a new panel that can be used in a GridView (or other ItemsControl).

All 8 comments

I would like to

  • [ ] Remove AdaptiveGridView.OneRowModeEnabled in favor of changing the ItemsPanel
<AdaptiveGridView Height="200"
                  ItemHeight="200"
                  ScrollViewer.HorizontalScrollBarVisibility="Auto"
                  ScrollViewer.HorizontalScrollMode="Enabled"
                  ScrollViewer.VerticalScrollMode="Disabled">
    <AdaptiveGridView.ItemsPanel>
        <ItemsWrapGrid Orientation="Vertical"/>
    </AdaptiveGridView.ItemsPanel>
</AdaptiveGridView>

I understand it's one xaml property compared to above, but the functionality is already available.
If I want to allow for horizontal scrolling always, I would have to do the above anyways. The only exception is to remove the Height
So, If I want to do horizontal scrolling always (not one mode) I have to do the above without the Height property. If I want to only allow one row, I could either add Height, or remove all of the above and replace with the OneRowModeEnabled property.

That just isn't consistent

The Carousel could also be used for this as well.

I'd go even further and propose to remove the AdaptiveGridView completely in favor for a new panel that can be used in a GridView (or other ItemsControl).

@nmetulev removing adaptive gridview completely? and making a generic panel surely makes sense but can you please brief on how will that panel cover the features of adaptive gridview, as it will be used in all types itemsControls?

@touseefbsb, the AdaptiveGridView currently provides two properties (ItemHeight and DesiredWidth) that extend the GridView and all can be handled by a panel. The new panel would probably also need to handle vertical and horizontal orientation.

@nmetulev
An advanced version of collectionview ( gridview/listview) which can have following basic features.

  1. will have all properties of an adaptivegridView.
  2. will have grouping option.
  3. semantic zoom with those grouped headers.
  4. search filtering , i.e: as user types in the attached searchbar to the control item start getting narrowed down to precise matching results based on the property user sets.
  5. reorder animation will be present by default. and can be turned off with a boolean property.
  6. can switch between listview appearence and gridview appearence with one click ( a single property which developer can turn on/off ).
  7. sorting them alphabetically by default.

I know some of these features are complicated, but suggesting them because these are the most asked for features when ppl use a gridview or listview, so why not place them together in one control and developer an use all the features or only the features they need, and it will always be flexible because it will take a datatemplate like every other collection view.

My brain was working yesterday. :)

ObjectStorageHelper (Local and Roaming) is the only helper which is not static. I designed those this way to be DI-compliant (easily switch from one storage options to the other).

I realise now this is not mandatory and we can make this helper static and if devs really want to, they can add an abstraction with their own classes.

Of course, making it static is a really big breaking change. What do you think?

We haven't had an ask about making it static and I'd leave it the way it is to avoid an unnecessary breaking change. I do agree it would be simpler to use if it were static

Closing issue and moving left over items to #2178

Was this page helpful?
0 / 5 - 0 ratings

Related issues

SmartPolarBear picture SmartPolarBear  路  4Comments

kusanagi2k2 picture kusanagi2k2  路  4Comments

nolanblew picture nolanblew  路  3Comments

andriihorpenko picture andriihorpenko  路  3Comments

jamesmcroft picture jamesmcroft  路  3Comments