void UpdateDetailViews ()
{
nameView.StringValue = villain.Name;
lastKnownLocationView.StringValue = villain.LastKnownLocation;
lastSeenDateView.DateValue = (NSDate)villain.LastSeenDate;
evilnessView.IntValue = villain.Evilness;
powerSourceView.Title = villain.PowerSource;
mugshotView.Image = villain.Mugshot;
notesView.Value = villain.Notes;
var villainSwornEnemy = (NSString)villain.SwornEnemy;
if (swornEnemyView.IndexOf(villainSwornEnemy) == int.MaxValue)
swornEnemyView.Add(villainSwornEnemy);
swornEnemyView.Select(villainSwornEnemy);
var cellTag = Array.IndexOf (motivations, villain.PrimaryMotivation);
primaryMotivationView.SelectCellWithTag (cellTag >= 0 ? cellTag : 0);
powersView.DeselectAllCells ();
var powers = villain.Powers;
foreach(var tag in from p in powers where powers.Contains (p) select powers.IndexOf (p))
powersView.CellWithTag (tag).State = NSCellStateValue.On;
}