I have an issue regarding cross thread calls in WPF.
foreach (RadioButton r in StatusButtonList) { StatusType status = null;
I'd rewrite this to:
r.Dispatcher.Invoke(new Action(delegate() { status = ((StatusButtonProperties)r.Tag).StatusInformation; if (AppLogic.CurrentStatus == null || AppLogic.CurrentStatus.IsStatusNextLogical(status.Code)) { r.Background = Brushes.Green; } else { r.Background = Brushes.Red; } }));