假设您有一个可观察的集合与您的网格绑定。网格是视图。
当标注检索数据时,标注将是异步的以返回数据。在异步事件处理程序,你会希望这样的事情在你的视图模型类:
/// <summary>
/// This is what is bound to the UI
/// </summary>
private ObservableCollection<UserDTO> _Users;
/// <summary>
/// Collection of Users
/// </summary>
public ObservableCollection<UserDTO> Users
{
get
{
return _Users;
}
set
{
if (_Users != value)
{
_Users = value;
OnPropertyChanged("Users");
}
}
}
/// <summary>
/// Asynchronous Callback For Get Users
/// </summary>
private void UserAgentGetCompleted(object sender, List<UserDto> users)
{
//Make sure we are on the UI thread
this.Dispatcher.BeginInvoke(() => SetUsers(users));
}
然后在SetUsers您将更新观察集合(_Users)绑定到视图(网格)数据。自可观察集合更新以来,所做的更改将反映在视图中,因为它通过依赖项属性绑定到视图。
请注意,我省略了SetUsers()代码,但所做的就是将传入用户列表设置为可观察集合。
您应该使用UI线程“修改”您的类,让其他线程使用分派器。 – vcsjones
当我在类中调用一个Add to a变量时,我的类被修改:'class.Elements.Add(...);'。那么你在说什么是使用调度员来打电话? – avivas