0

助けてくれてありがとう。ここにリストされているチュートリアルで作業してきましたが、問題が発生しました。Silverlightでデータグリッドにデータを入力しようとしていますが、ボタンクリックを送信すると、列のヘッダーが返されますが、データは返されません。データがシステムにあることを知っているので、ヘッダーを取得するのに実際のデータを取得しない理由がわかりません。MainPage.xaml.csとデータドメインのコードを以下に示します。

MainPage.xaml.cs

namespace SandCherryDemo
{
    public partial class MainPage : UserControl
    {
        private SandCherryViewContext _sandCherryContext = new SandCherryViewContext();

        public MainPage()
        {
            InitializeComponent();
        }

        private void StatusButton_Click(object sender, RoutedEventArgs e)
        {
            StatusButton.IsEnabled = false;
            LoadOperation<SandCherryView> loadOp = this._sandCherryContext.Load(this._sandCherryContext.GetEQPByStatusQuery(StatusValue.Text), DataLoadedCallback, null);
            SandCherryGrid.ItemsSource = loadOp.Entities;
        }

        void DataLoadedCallback(LoadOperation<SandCherryView> loadOperation)
        {
            StatusButton.IsEnabled = true;
        }
    }
}

SandCherryViewService.cs

 [EnableClientAccess()]
    public class SandCherryViewService : LinqToEntitiesDomainService<Charter_SandCherryEntities>
    {
        [Query(IsComposable=false)]
        public IQueryable<SandCherryView> GetEQPByStatus(string status)
        {
            return this.ObjectContext.SandCherryViews.Where(e => e.StatusDescr.StartsWith(status) == true);
        }

        // TODO:
        // Consider constraining the results of your query method.  If you need additional input you can
        // add parameters to this method or create additional query methods with different names.
        // To support paging you will need to add ordering to the 'SandCherryViews' query.
        public IQueryable<SandCherryView> GetSandCherryViews()
        {
            return this.ObjectContext.SandCherryViews;
        }

        public void InsertSandCherryView(SandCherryView sandCherryView)
        {
            if ((sandCherryView.EntityState != EntityState.Detached))
            {
                this.ObjectContext.ObjectStateManager.ChangeObjectState(sandCherryView, EntityState.Added);
            }
            else
            {
                this.ObjectContext.SandCherryViews.AddObject(sandCherryView);
            }
        }

        public void UpdateSandCherryView(SandCherryView currentSandCherryView)
        {
            this.ObjectContext.SandCherryViews.AttachAsModified(currentSandCherryView, this.ChangeSet.GetOriginal(currentSandCherryView));
        }

        public void DeleteSandCherryView(SandCherryView sandCherryView)
        {
            if ((sandCherryView.EntityState != EntityState.Detached))
            {
                this.ObjectContext.ObjectStateManager.ChangeObjectState(sandCherryView, EntityState.Deleted);
            }
            else
            {
                this.ObjectContext.SandCherryViews.Attach(sandCherryView);
                this.ObjectContext.SandCherryViews.DeleteObject(sandCherryView);
            }
        }
    }
}
4

1 に答える 1

0

データがまだロードされていないため。イベントItemsSourceでグリッドのを設定してみてください-DataLoadedCallBack

void DataLoadedCallback(LoadOperation<SandCherryView> loadOperation)
{
   StatusButton.IsEnabled = true;
   SandCherryGrid.ItemsSource = loadOp.Entities;
}
于 2012-10-02T16:47:11.913 に答える