Since your TextBlock is in a DataTemplate, it [probably] will be bound to the element in the collection. This means that if you bind a color to a property, you will need this property in the element class, and not on the main page. If you want different items to have different colors, you need to add the property to the item class. If you already have a property that does not match the type (Brush), you can use the converter on the binding so as not to add an unnecessary property.
If you do not want to add a property to your product class, the best option is to declare several DataTemplates on the Resources pages, and then replace the templates as necessary:
something.ItemTemplate = (DataTemplate)this.Resources["BlueItemTemplate"];
calum source share