0

我正在开发一个连接到 Windows azure 的应用程序。我有一个将显示项目名称的列表框。使用 azure 建立的连接有效,我得到了有效的结果,但列表框似乎没有更新(视觉上)。如果我添加一个可观察的集合并将项目添加到这个集合中并且列表框正确连接,它就会起作用。

知道为什么这不起作用吗?

这是我的代码:

    public MobileServiceCollection<Project, Project> Projects { get; private set; }
    private IMobileServiceTable<Project> projectTable = App.MobileService.GetTable<Project>();        

    public async void LoadData()
    {
        try
        {
            Projects = await projectTable
                .Where(Project => Project.ID != 0)
                .ToCollectionAsync();
        }
        catch (MobileServiceInvalidOperationException e)
        {
            MessageBox.Show(e.Message, "Error loading projects", MessageBoxButton.OK);
        }
        this.IsDataLoaded = true;
    }
4

1 回答 1

0

将您的 Projects MobileServiceCollection 绑定到您的列表框,就像绑定 ObservableColleciton 一样

try
    {
        Projects = await projectTable
            .Where(Project => Project.ID != 0)
            .ToCollectionAsync();

        //Bind Projects to ListBox
        ListBox.ItemsSource = Projects;
    }

此外,当您使用 IMobileServiceTable 插入/更新/删除项目时,您必须通过更新集合来保持 MobileServiceCollection 同步

        //Add a new project to the database
        await projectTable.InsertAsync(project);

        //Update the collection to match the database
        Projects.Add(project);  
于 2013-07-30T06:54:11.600 回答