0

これが私の状況です。MVC パターンが配置されている Windows バックグラウンドからの最初の SL アプリケーションを開始しています。私はそのパターンを利用できると考えているので、3 つのプロジェクトで SL アプリケーション (ソリューション) の作成に取り掛かります --> 1 つはモデル (以前のビジネス オブジェクト)、SL アプリ (SL を選択すると自動的に生成されます) を保持します。プロジェクト)、および 1 つの SL.Web プロジェクト (SL プロジェクトを選択すると自動的に生成されます)。

私が行った手順は次のとおりです。空白のグリッドを xaml ファイルにドロップし、サービスを作成しましたが、問題なく認識されています。「Silverlight 対応の WCF サービス」を Web プロジェクトに追加し、プロジェクト内で「モデル」プロジェクトを参照しました。[OperationContract] 内に、次のメソッド (サービス) を作成しました。

[OperationContract]
public EmployeeCollection GetEmployees()
{
     EmployeeCollection employees = Model.EmployeeCollection.GetAllEmployees();
     return employees;
}

これをデバッグしてブレークポイントを設定すると、従業員の復帰に関するデータが表示されるため、データが返されていることがわかります。

さて、私の page.xaml.cs ファイルでは、グリッドが何らかの形で取り込まれていないように見えますが、その理由はありません。

次のスニペットがあります。

void MyWebService_GetEmploteesCompleted(object sender, EmployeeWebService.GetEmployeesCompletedEventArgs e)
{
     dataGrid.ItemsSource = e.Result;
}

他にどこを見ればいいですか?何が欠けている可能性がありますか?BLL (モデル) を使用するには、他のコード スニペットを追加する必要がありますか?

アドバイスをありがとう。

=============================

ところで、デバッグ中に [Autos] ウィンドウで、_GetEMployeesCompleted() に次の値が表示されていることに気付きました。

dataGrid.ItemSource ........... Count = 30 e.Result ......... Count = 30

DataGrid に値が表示されないのはなぜですか?

4

3 に答える 3

0

この質問は少し古いですが、同様の問題に遭遇しました...

テーマエンジンを使用していますか?テーマ エンジンで別のコントロール (ChildWindow、Tab など) 内でグリッドを使用すると、子がレンダリングされないことに気付きました。ツールキット関係者にバグを報告したので、修正されるかどうかを確認します。

于 2009-08-22T00:30:52.170 に答える
0

ばかげた質問で申し訳ありませんが、Employee クラスがどのように実装されているかがわからないため、Employee クラスはパブリックプロパティ(パブリック メンバーだけでなく) を公開していますか? プロパティにのみバインドできます。これは、DataGrid が列を自動生成しない理由を説明している可能性があります。

于 2009-06-01T01:00:13.353 に答える
0

DataGrid で AutoGenerateColumns = true を設定しましたか? EmployeeCollection はどのようなインターフェイスを実装していますか?

于 2009-05-29T13:47:21.430 に答える