在ViewModel中添加其他属性

时间:2011-05-22 17:20:09

标签: silverlight-4.0 mvvm wcf-ria-services

我有一个使用EF&的Silverlight 4应用程序带有SQL DB的WCF RIA服务。我有一个我希望在网格或列表框中显示的任务表,我想进行自定义分组。自定义分组将是逾期,今天,tomrrow,未来7天和未来。

如果我正确理解MVVM的概念,我应该在TasksViewModel中为Tasks对象创建一个自定义属性。但我不知道该怎么做。

我有在实体数据模型中自动创建的Tasks实体,我在我的viewmodel中调用的DomainService中有一个GetTasks方法。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

您应该可以从客户端访问这些类型。您可以在ViewModel上创建可以绑定到的Task实体列表。

private List<Task> _tasks;
public List<Task> Tasks
{
     get { return _tasks; }
     set {
          _tasks = value;
          NotifyPropertyChanged("Tasks");
          }
}

如果您不想直接绑定到实体,也可以创建要映射到的客户端poco。

答案 1 :(得分:0)

以下与“gouping”无关,因为它似乎不是你的问题。

我要做的是拥有ObservableCollection<Task>

的属性
public ObservableCollection<Task> Tasks {get; private set;}

我在构造函数中初始化,请求域上下文加载任务,然后使用回调中的数据填充集合,如下所示:

private TasksDomainContext context;
public TasksViewModel()
{
    Tasks=new ObservableCollection<Task>();
    context= new TasksDomainContext();
    LoadTasks();
}
void LoadTasks()
{
    context.Load(
        context.GetTasksQuery(),
        callback =>
                 {
                    if(callback.HasError)
                    {
                        //handle error
                    }
                    else
                    {
                        Tasks.Clear();
                        foreach(var task in callback.Entities)
                            Tasks.Add(task);
                    }
                 },
         null);
}

希望这会有所帮助;)

P.S。:如果您遇到分组问题,请提供更多详情