public enum TrafficStatus
{
Stop,Ready,Go
}
public class TrafficLight : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public TrafficStatus Status
{
get { return status; }
set
{
status = value;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("status"));
}
}
}
private TrafficStatus status;
}
public class ColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
TrafficStatus status = (TrafficStatus)value;
SolidColorBrush brush = new SolidColorBrush(Colors.Red);
switch (status)
{
case TrafficStatus.Stop:
break;
case TrafficStatus.Ready:
brush = new SolidColorBrush(Colors.Orange);
break;
case TrafficStatus.Go:
brush = new SolidColorBrush(Colors.Green);
break;
default:
break;
}
return brush;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return null;
}
}