private void _OnPlayerPropertyChanged(object o, PropertyChangedEventArgs e)
{
string name = e.PropertyName;
if (name == "Role")
{
_UpdatePossibleRoles();
OnPropertyChanged("Role");
OnPropertyChanged("PossibleRoles");
}
else if (name == "Hero")
{
Application.Current.Dispatcher.Invoke((ThreadStart)delegate()
{
Hero1Model.Hero = Hero;
OnPropertyChanged("Hero");
});
}
else if (name == "Hero2")
{
Application.Current.Dispatcher.Invoke((ThreadStart)delegate()
{
Hero2Model.Hero = Hero2;
OnPropertyChanged("Hero2");
});
}
else if (name == "Skills")
{
if (Application.Current.Dispatcher.CheckAccess())
{
_UpdateSkills();
}
else
{
Application.Current.Dispatcher.Invoke((ThreadStart)delegate() { _UpdateSkills(); });
}
}
else if (name == "Attributes")
{
if (Application.Current.Dispatcher.CheckAccess())
{
_UpdateAttributes();
}
else
{
Application.Current.Dispatcher.Invoke((ThreadStart)delegate() { _UpdateAttributes(); });
}
}
else
{
var propNames = from prop in this.GetType().GetProperties() select prop.Name;
if (propNames.Contains(name))
{
OnPropertyChanged(name);
}
}
}