Yes, TimelineDisplayEvent should have necessary visual information (color in your case), I think to make it generic this should be some sort of delegate which assigns object VisualInfo property (this is object type property). Now, as you have it in TimelineDisplayInfo,
you can bind BorderBrush to TimelineDisplayEvent.VisualInfo.BorderBrush.
So, simple and generic solution would be:
- Add VisualInfo object property
- Create hook function (this hook should be for TimelineBand), function that customizes TimelineDisplayEvent every time new instance is created;
- Create custom style for TimelineEvent and bind border color to VisualInfo.YourPropertyNameBrush