The StyleSelector provides a way to apply styles based on custom logic.
Typically, you use a style selector when you have more than one styles defined for the same type of objects. For example, use it if your binding source is a list of student objects and you want to apply a particular style to the part-time students. You can do this by creating a class that inherits from the StyleSelector class and by overriding its SelectStyle() method. Once your class is defined you can assign an instance of the class to the style selector property of your element.
For more information, you can check the StyleSelector Class msdn article.