我有一个使用EF&的Silverlight 4应用程序带有SQL DB的WCF RIA服务。我有一个我希望在网格或列表框中显示的任务表,我想进行自定义分组。自定义分组将是逾期,今天,tomrrow,未来7天和未来。
如果我正确理解MVVM的概念,我应该在TasksViewModel中为Tasks对象创建一个自定义属性。但我不知道该怎么做。
我有在实体数据模型中自动创建的Tasks实体,我在我的viewmodel中调用的DomainService中有一个GetTasks方法。
非常感谢任何帮助。
答案 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。:如果您遇到分组问题,请提供更多详情