This project is read-only.

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.


Sample walkthrough - demonstrates how to add and use the options dialog
Supported data types - a list of all supported data types and their properties
Tombstoning - what to take into account for tombstoning
Localization - how to properly support other languages
Advanced concept: providing custom views - explains how you can change the built-in editors easily
Advanced concept: adding custom data types - explains how to add support for new data types


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.

Last edited Mar 31, 2013 at 5:17 PM by Mister_Goodcat, version 4


No comments yet.