我嵌套ObsevableCollections如下所示。出於簡單的原因,這是我試圖完成的示例代碼。檢索WPF中的對象父容器對象
示例應用程序的包含的ObservableCollection組包含一個的ObservableCollection領土對象
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"));
}
}
}
隊對象
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是一個對象類型的領土,在ObservableCollection的領土內部和團隊的對象。
public void SomeWork()
{
Territory t = _Teams[1].Territories[0];
SomeMoreWork(t);
}
我從1個團隊中刪除領土並將其添加到另一個團隊。像下面這樣。我如何得到Team對象屬於哪個領域?
public void SomeMoreWork(Territory t)
{
Team _Team = (Parent of t?);
_Team.Territories.Remove(t);
_Teams[0].Territories.Add(t);
}
的構造我認爲最好的辦法是添加數據成員,它與相應的團隊對象相關聯的區域類中。 –