Your Last Options Dialog

Often a Windows Phone application needs some sort of options or settings dialog or page. You may want to keep some details of your app configurable or customizable for the user, or simply have the possibility for them to opt in or out of certain features. Instead
of recreating the same logic and user controls over and over again, fiddling hours with design, margins and alignments, wouldn't it be nice to have a generic way of displaying such a page, simply throwing some values at it that are configured in a minute?
That's what "Your Last Options Dialog" is trying to do.

How it works

YLOD takes an object-any object-and extracts the property values from it using reflection. Depending on the type of the properties it creates different pre-built editors that allow manipulation of the property values for the user. This enables you to use any
of your classes as data provider for the options page, without the need to write any additional code. Details of the behavior of the options page can be easily configured by decorating your properties with attributes. This approach also allows easy localization
using the built-in .NET mechanism of resources. In addition, several ways of validation can be used to restrict the values that can be entered by the user. And if you ever need additional features not supported by the library, or want to change existing ones,
you can extend the options page with only a few lines of code easily.

Where to Get It

To use YLOD in your own application, these are your options:

Get the package on NuGet (the package IDs are "ylod" and "ylod.extras") - this is the recommended way, as it configures your project properly and also pulls in all dependencies.

Download the binaries from CodePlex and add them to your project - this means that you need to install and/or add dependencies manually yourself. Starting with version 1.1.0, no binary packages are provided on CodePlex anymore. Use NuGet instead.

Retrieve the source code from CodePlex and compile the library yourself - the most complex way, but you have full control.

Please note that the source code package also contains a full sample application that demonstrates all aspects of the library. If you're stuck despite the below instructions, you can use this sample as a guidance too.

Two Flavors

YLOD actually comes in two flavors: the base project and an "Extras" version. The difference is that the base project only has a dependency on the
Windows Phone Toolkit and contains support for common data types, whereas the "Extras" version additionally requires the
Coding4Fun Toolkit and provides support for more exotic data types like Color. Please choose the version you need; you can take a look at the supported data types (see below) to decide whether you need the "Extras" or not-and you can of
course switch between versions later.

Roadmap

This is a hobby project of mine, so there's no well-planned roadmap. I'll add features as required and requested, and when I have time. In fact, I very much encourage you to contact me or use the CodePlex discussions and issue tracker if you want to
see something added or changed in the future. I'm open to contributions and improvements from others, and it would be nice to learn about your experiences with the project. Things of possible future features on my list are (again, implementation of these
may depend on demand and requests, so make your voice heard):

Add support for additional data types as required

Maybe make the engine understand already existing attributes from other (.NET) namespaces

Add more support for easy styling

About Me

My name is Peter Kuhn ("Mister Goodcat"), and among much other I'm a Windows Phone enthusiast :).
You can learn more about me
here, and read more from me on my blog.