如何将字符串添加到ICollection <string>?</string>

时间:2014-01-27 10:09:00

标签: c# wpf class mvvm icollection

编辑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似乎仍然为空。任何进一步的想法或我做错的任何事情?

2 个答案:

答案 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;
    }

}