Hi everyone,
I'm working on some code to display cards using MVVM design.
To make it quick, here is some sample of my code.
Here is my ViewModel :
public sealed class CardViewModel : BindableBase
{
private int _id;
public int Id
{
get { return _id; }
set { SetProperty(ref _id, value); }
}
public CardViewModel(CardDTO card)
{
Id = card.Id;
}
}
CardDTO is some transfer object that I receive through a service call.
Here is the code.
public sealed class CardDTO
{
public int Id { get; set; }
}
In the view, each card display a different picture based on its Id.
To do this, a converter is used.
public sealed CharIdToFillConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var id = (int)value;
switch(id)
{
case 1:
return new ImageBrush(...);
case 2:
return new ImageBrush(...);
default:
throw new NotImplementedException();
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
I don't like the switch in this code.
Is there a way, some good practice, to make it cleaner ?
Should I use polymorphism instead of my Id property ?
Thanks