为什么我的viewmodel属性不会被填充

时间:2010-06-10 11:37:07

标签: c# silverlight mvvm wcf-ria-services

我看了一遍,我无法弄清楚为什么我的viewmodel没有填充。

我有这段代码:

_followersRepo = new NotesDomainContext(); 
_followersRepo.Load(_followersRepo.GetFollowersQuery(), lo => { 
_followers = new ObservableCollection(_followersRepo.aspnet_Users); 
    }, null); 

_followingRepo = new NotesDomainContext(); 
_followingRepo.Load(_followingRepo.GetUsersFollowedByIDQuery(CurrentUserId), lo => {
 _following = new ObservableCollection(_followingRepo.aspnet_Users); 
}, null); 

_fullUserRepo = new NotesDomainContext(); 
_fullUserRepo.Load(_fullUserRepo.GetFullUserByIDQuery(CurrentUserId), lo => {
 _currentUser = _fullUserRepo.FullUsers.SingleOrDefault(); 
}, null);

但是当我调试时,没有数据加载到Followers,Following和CurrentUser对象。我知道应该返回数据,因为我正在尝试在我的应用程序中实现MVVM模式,并且没有更改域服务。另外我可以调试CurrentUserId有一个值。这些变量都没有值,而且repo也没有。

当我试图查看ie_followersRepo.aspnet_Users的值时,我只是得到“枚举没有结果”的内容是什么?

必须有一些关于域服务查询的关键逻辑,我真的没有得到,所以如果有人愿意睁开眼睛,我会非常感激

1 个答案:

答案 0 :(得分:2)

_followersRepo.Load(_followersRepo.GetUsersFollowingIDQuery(CurrentUserId));

如果此行用于将数据加载到_followersRepo,则应该在实例化Followers之前。

<强>更新

试试这个:

_followersRepo = new NotesDomainContext();
var filteredFollowers = _followersRepo.GetFollowersQuery(); // That should return you an IQueryable<aspnet_User>
_followers = new ObservableCollection(filteredFollowers); // An ObservableCollection is created out of the IQueryable<aspnet_User>

无需再次创建_followersRepo。使用相同的实例来创建其他集合