Have you ever remarked the gorgeous wheel picker used in lots of AppStore apps? Did you ever wanted to use it in the Xamarin Forms project of your customer so you can hear Ohhs and Ahhs from your work? Did you feel bad when you discovered this control does not come out of the box of Xamarin Forms, and no-one seems to have created one on github, and that finally you decided to put an horrible list picker instead ?
On Apple's world, the wheelpicker is a well documented, not easy to use, but so cutely designed UI control from which the user can quickly and intuitively select linked values, like a date : a birth date, a driver license's date (month day year values); or a vehicle's details (brand, model, year) for examples. You can also use it to select a single value in an easy way, even in a large list, thanks to the "flying" acceleration feature, simulating the inertia of a heavy wheel that you spin with force. In this last case, the addition of a search or filter input could also have some benefits.
A wheel is made of wheel parts. For example a date picker will have the month, day and year parts. Each part can be spinned independently of each other. You can also add business rules **between parts, which makes sense when selecting a date: you really don't want the 31th of February selected, do you ?🙄
A quick example of a rule **that coud be set on a date wheel picker: when the selected day is 31 then verify that the selected month has 31 days; otherwise programatically move the "month" wheel part ** to the next month having 31 days.
A wheel with 3 parts
A wheel with 1 part
Each part of the wheel is made of a list of the same templated item reflecting the bounded enumerable property. You define this template once for each part. Among the part's item template properties, the most useful is its alignment. But there are lots more like Color and Font.
The slide-up wheel picker is the one you see in most AppStore's apps. The wheel control is embedded in a semi-transparent page having a slide-up transition. The control has a fixed height. But you can integrate it as you want, for example anywhere in a scrolling form page.