Вы можете использовать событие, которое будет сигнализировать классу Activity
, что настало время для обновления.
public class games
{
public event UpdatePlayerSubDelegate UpdatePlayerSub;
public delegate void UpdatePlayerSubDelegate();
private int _player;
public int player
{
get { return _player; }
set
{
_player = value;
if (_player > 2)
{
// Fire the Event that it is time to update
UpdatePlayerSub();
}
}
}
}
В классе Activity вы можете зарегистрировать событие в конструкторе и записать в обработчик события необходимое обновление. В вашем случае к югу до 10:
public class Activity
{
public games _Games { get; set; }
public sports _Sports { get; set; }
public Activity()
{
this._Games = new games();
this._Games.UpdatePlayerSub += _Games_UpdatePlayerSub;
this._Sports = new sports();
}
private void _Games_UpdatePlayerSub()
{
if (_Sports != null)
{
_Sports.sub = 10;
}
}
}
EDIT Я только что видел тег INotifyPropertyChanged
. Конечно, вы также можете использовать этот интерфейс и предоставленное событие. Реализовать интерфейс, как:
public class games : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private int _player;
public int player
{
get { return _player; }
set
{
_player = value;
if (_player > 2)
{
// Fire the Event that it is time to update
PropertyChanged(this, new PropertyChangedEventArgs("player"));
}
}
}
}
И в регистре Activity
класса снова к событию в конструкторе:
public Activity()
{
this._Games = new games();
this._Games.PropertyChanged += _Games_PropertyChanged;
this._Sports = new sports();
}
и объявить тело обработчика событий:
private void _Games_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
if (_Sports != null)
{
_Sports.sub = 10;
}
}
И _Sports.sub
будет обновляться автоматически. Надеюсь, поможет. Конечно, есть и другие способы сделать это обновление. Это только первый, о котором я пришел.
Это довольно тривиальная проблема, которая потенциально может быть решена разными способами. Пожалуйста, вы можете показать нам код того, что вы пробовали, и почему он не работает. – Ben
Добро пожаловать в StackOverflow. Если какой-либо из ответов был полезен для вас, вы можете взглянуть на [how-do-accepting-a-answer-work] (http://meta.stackexchange.com/questions/5234/how-does-accepting -ан-ответ-работа) сообщение –