编辑2
在过去的几天里,我得到了一些关于我正在努力解决的问题的帮助。在收到多个用户的有用支持后,我遇到了一个错误,我一直试图在周末修复但仍未成功。
我创建了一个词典,在那里我传递了string Country
以及该国家/地区的ICollection
个地方。
Dictionary<string, NewCountryClass> NTCD = new Dictionary<string, NewCountryClass>();
public void AddCountryCollection()
{
newCountryClass = new NewCountryClass(newCountry);
Collections.Add(newCountryClass);
NTCD.Add(newCountryClass.Country, newCountryClass);
}
public void AddPlace()
{
string Country = selectedItem.Country;
RenameQuestion(placeName);
NTCD[Country].Place.Add(placeName);
}
以下是我newCountryClass
我存储该国家/地区的国家/地区。
private ICollection<string> _places;
public ICollection<string> Places
{
get
{
return _places;
}
set
{
if (value == _places)
return;
_places = value;
RaisePropertyChanged(() => Places);
}
}
这是可以添加地点的地方,但是我在添加国家/地区阶段创建了我的类的实例,因此当时无法传递地点。 (编辑 - 我已经将集合的初始化移动到构造函数中,而不是像Places一样在Places属性中。)
public NewCountryClass(string country)
{
_places = new ObservableCollection<string>();
if (country != null)
{
_country = country;
}
}
因此,我尝试创建renamePlace()
方法:
public void RenamePlace(string place)
{
_places.Add(place);
}
但是,即使尝试此操作,_places
似乎仍然为空。任何进一步的想法或我做错的任何事情?
答案 0 :(得分:0)
您需要learn how to debug a program。基本上,您尝试在此处实例化NewCountryClass
:
public void AddCountryCollection()
{ // <<< Put breakpoint here <<<
newCountryClass = new NewCountryClass(newCountry, placeName);
Collections.Add(newCountryClass);
NTCD.Add(newCountryClass.Country, newCountryClass);
}
如果构造函数中的placeName
输入参数为null
,那么它也是null
...您需要在此处添加断点并找出值为{{ {1}}并确保它在您的程序中具有此阶段的值。
答案 1 :(得分:0)
在构造函数中初始化_places集合而不是属性get访问器会不会更好?
public NewCountryClass(string country)
{
_places = new ObservableCollection<string>();
if (country != null)
{
_country = country;
}
}