SilverlightでWCFを使ってみた
SilverlightアプリケーションからDBへアクセスする方法を調べてたんですが、とりあえずWCFサービスを使う方法を試してみました。
コードは下記のブログを丸々参考にさせていただきました。
silverlight 3でデータベースを使用する。WCF利用
大変参考になりました。
というわけでそのままコード書いて実行してみたものの、
DataGridに読み込んだデータが表示されない。。。
namespace WCFDBAccessTest
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
}
private void serviceClient_DataTestCompleted(object sender, DataTestCompletedEventArgs e)
{
textBlock1.Text += "serviceClient_DataTestCompleted started.rn";
dataGrid1.ItemsSource = e.Result;
textBlock1.Text += "DataSource count is " + e.Result.Count + "rn";
textBlock1.Text += "serviceClient_DataTestCompleted was completed.rn";
}
private void button1_Click(object sender, RoutedEventArgs e)
{
textBlock1.Text = "";
dataGrid1.ItemsSource = null;
SampleWCF.WCFServiceClient serviceClient = new WCFServiceClient();
serviceClient.DataTestCompleted +=
new EventHandler
(serviceClient_DataTestCompleted);
serviceClient.DataTestAsync();
}
}
}
Silverlightアプリってデバッグできないんだっけ?うーんわからん。。。
WCFサービス側はデバッグできたので、サービスがデータを返してることは確認できたんですが、
Silverlightアプリ側でそれを受け取れてるのかがいまいち把握できない。
なので、
上のように serviceClient_DataTestCompleted イベントでItemSourceの件数を表示するようにしてみたところ、
ちゃんとデータが帰ってきてることがわかりました。
うーん。。。と結構悩みこんでしまったのですが、
原因はDataGridの「AutoGenerateColumns」プロパティ、これでした。
プロパティ一個とは。。。
まだまだわからんことだらけだなー。
でもなんとか、WCFサービスでデータのやりとりもできたので、
これでまた先へ進めます、良かった!