製品をチェック

無償トライアル:

無償トライアルへ

製品の情報と無償トライアルへ:

Email ADO.NET Provider

.NET アプリケーションにパワフルなE メールの送受信機能を統合する最も簡単な方法です。POP3、IMAP、SMTP によるE メールの送受信、アドレスの検証などを行うことができます。

データ連携でお困りですか?

お問い合わせ

Infragistics WPF XamDataGrid と Email をデータバインド


Infragistics WPF XamDataGrid と Email をデータバインドする方法


加藤龍彦
ウェブデベロッパー

この記事では CData ADO.NET Provider for Email を使って、Infragistics WPF XamDataGrid に Email をデータバインドする方法を説明します。

完成イメージ

以下のように Infragistics WPF XamDataGrid でEmail から取得したデータを表示するアプリケーションを作成します。

XamDataGrid

1. WPFプロジェクトの作成

まず、VisualStudioを立ち上げて、WPFアプリのプロジェクトを作成します。

XamDataGrid

今回はデータを柔軟に取り出せるように、CData ADO.NET ProviderにSQLを渡すためのTextBoxと実行用のボタンを配置しました。

XamDataGrid

この段階でのXAMLは以下のようになっています。

2. XamDataGrid の配置・設定

次に「XamDataGrid」を配置します。 Infragistics WPF UI コンポーネントをインストールしている場合、ツールボックスに以下のように表示されます。

XamDataGrid

これをデザイナー画面で以下のように配置しました。

XamDataGrid

併せて、任意の名称(xamDataGrid としました)、DataSource は{Binding} を指定し、フィルター機能を使えるように「Custom:FieldSettings」に「AllowRecordFiltering="true"」「AllowSummaries="True" 」を追加しました。

また、サンプルプログラムではデザインテーマの「Theme="Metro"」も設定しています。このあたりはお好みでどうぞ。

3. CData Email ADO.NET Provider への接続を構成

最後に CData Email ADO.NET Provider への接続部分を作成します。

まずは参照設定からCData Email ADO.NET Provider のライブラリである「System.Data.CData.Email.dll」を追加します。

その後、名前空間に「System.Data.CData.Email」を追加し

using System.Data.CData.Email;

ボタンをクリックした時にTextBoxからSQL文を取得し、Email からデータを取得する処理を記述します。この記述方法は以下のヘルプに記載されているものがほぼそのままです。

using System.Data; using System.Data.CData.Email; using System.Windows; namespace CData.XamDataGrid.GropingListApp { /// /// MainWindow.xaml の相互作用ロジック /// public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); sqlTextBox.Text = "SELECT * FROM Samples"; } private void ExecuteButton_Click(object sender, RoutedEventArgs e) { string connectionString = "User=username@gmail.com;Password=password;Server=imap.gmail.com;Port=993;SMTP Server=smtp.gmail.com;SMTP Port=465;SSL Mode=EXPLICIT;Protocol=IMAP;Mailbox=Inbox;"; using (var connection = new D365SalesConnection(connectionString)) { var dataAdapter = new EmailDataAdapter( sqlTextBox.Text, connection); var table = new DataTable(); dataAdapter.Fill(table); this.DataContext = table.Rows; } } } }

通常のWebAPIをそのまま実装した場合、自身でWebAPIリクエストの処理から認証部分、「XamDataGrid」渡すデータ構造の構成まで定義しなければいけませんが、これらコンポーネントの活用により省力化してアプリケーションを開発できます。

このように Email 内のデータを API を書くことなく XamDataGrid 上で処理することができるようになります。

サポートされるSQL についての詳細は、ヘルプドキュメントの「サポートされるSQL」をご覧ください。テーブルに関する情報は「データモデル」をご覧ください。