0

我有 2 个对象,比如说,国家和城市——它们有一对多的关系,

国家 --> 身份证,姓名

city--> id, countryid, 城市名

在视图模型中,我得到了国家/地区列表(一切都很完美),但是,尽管我的服务参考配置、集合类型设置为 system.collections.generic.list ,但 country.cities 的类型为TrackableCollectionOfCityxSjLehPL 。

在我的用户界面中,有一个网格视图显示从视图模型绑定到国家列表的国家列表,以及另一个绑定到 selectedCountry.cities 的网格视图

它正在工作,但是当我尝试添加一个新的城市用户单击一个按钮时,它在视图模型中的命令如下:

city newcity= new City();
SelectedCountry.Cities.Add(newcity),
NotifyProperyChanged(selectedCountry)

我希望它被添加到我的网格视图中,对吧?但不是!它没有被添加到城市网格视图中,当我通过单击列进行排序时,它会刷新并且我会看到我新添加的城市!

我想我应该实现 CollectionChanged- 因为更改部分实际上是在我县的列表中,但是由于它的TrackableCollectionOfCityxSjLehPL,我不能这样做,并且没有关于这种类型的信息,它有时会出现有时不会......

我不想像为城市制作另一个列表并将其绑定在 Wpf 部分中那样分离对象,因为最终我最终保存了整个国家,或者在后面的代码中刷新网格......

因此,如果您看到这种类型的列表并遇到这样的问题,如果有人给我一些信息,我会非常高兴

4

1 回答 1

0

1 - 删除所有当前的服务参考。

2 -Model从您的 ViewModel 中添加对您的程序集(项目)的引用:

--MySolution
 |-- MyProject.Model
 |   |-- (Model Classes)
 |
 |-- MyProject.ViewModels
 |    |--References
 |    |   |--MyProject.Model.dll <-- You need this
 |    |
 |    |--(ViewModel Classes)
 |
 |----(etcetera)
  • 这允许您在创建服务引用时“重用现有类型”:

    在此处输入图像描述

这将防止那种可怕TrackableCollectionOfCityxSjLehPL的东西出现。

3 - 重新添加服务引用并确保选择上面显示的选项。

4 - 您可能不想CollectionChanged在 TrackableCollection 中处理。将 ViewModel 与 Model 分开,否则您将遇到巨大的可维护性/可伸缩性问题。

于 2013-08-15T17:29:48.147 回答