Я вложил ObsevableCollections , как показано ниже. По упрощенной причине это пример кода того, что я пытаюсь выполнить.
Пример приложения содержит ObservableCollection Team
class MyApplication2
{
ObservableCollection<Team> _Teams = new ObservableCollection<Team>();
public MyApplication2()
{
_Teams.Add(new Team("Team1"));
_Teams.Add(new Team("Team2"));
_Teams.Add(new Team("Team3"));
foreach (Team t in _Teams)
{
t.Territories.Add(new Territory("Territory1"));
t.Territories.Add(new Territory("Territory2"));
t.Territories.Add(new Territory("Territory3"));
}
}
}
Объект Team, содержащий ObservableCollection Объект Territory
class Team
{
private string _TeamName = "";
private int _TeamProperty1 = 0;
ObservableCollection<Territory> _Territories = new ObservableCollection<Territory>();
public Team(string tName)
{
this.TeamName = tName;
}
public ObservableCollection<Territory> Territories
{
get { return _Territories; }
set { _Territories = value; }
}
public string TeamName
{
get { return _TeamName; }
set { _TeamName = value; }
}
public int TeamProperty1
{
get { return _TeamProperty1; }
set { _TeamProperty1 = value; }
}
}
Территория объекта
class Territory
{
private string _TerritoryName = "";
public Territory(string tName)
{
this.TerritoryName = tName;
}
public string TerritoryName
{
get { return _TerritoryName; }
set { _TerritoryName = value; }
}
public void Method1()
{
//Do Some Work
}
}
Как раз для этого примера я присвоил t значение, но в моем реальном коде у меня есть объект t из других средств. t - это тип объекта территории в ObservableCollection территорий внутри и объекта команды.
public void SomeWork()
{
Territory t = _Teams[1].Territories[0];
SomeMoreWork(t);
}
Я удаляю территорию из 1 команды и добавляю ее в другую команду. Что-то вроде следующего. Как мне узнать, к какому объекту команды принадлежит территория?
public void SomeMoreWork(Territory t)
{
Team _Team = ( Parent of t? );
_Team.Territories.Remove(t);
_Teams[0].Territories.Add(t);
}