前のセクションでは、従来のデータ連結アプリケーションを LiveLinq 連結に移行する方法について説明しました。結果のアプリケーションでは、設計時に Visual Studio によって生成された BindingSource オブジェクトとコードを使用しました。
新しい LiveLinq アプリケーションを最初から作成する場合は、さらに簡単です。
手順は次のとおりです。
C# |
コードのコピー
|
---|---|
using C1.LiveLinq; using C1.LiveLinq.AdoNet; using C1.LiveLinq.LiveViews; private void Form1_Load(object sender, EventArgs e) { // データを取得します var ds = GetData(); // Categories および Products を使用してライブビューを作成します var liveView = from c in ds.Categories.AsLive() join p in ds.Products.AsLive() on c.CategoryID equals p.CategoryID into g select new { c.CategoryID, c.CategoryName, Products = g }; // ビューをコントロールに連結します DataBind(liveView); } |
このコードは単純です。GetData メソッドを呼び出して DataSet にデータをロードし、前に使用した LINQ ステートメントと同じステートメントを使用して LiveLinq ビューを作成します。次に、DataBind を呼び出して、フォーム内のコントロールをビューに連結します。
次に、GetData メソッドの実装を示します。
C# |
コードのコピー
|
---|---|
NORTHWNDDataSet GetData() { NORTHWNDDataSet ds = new NORTHWNDDataSet(); new NORTHWNDDataSetTableAdapters.ProductsTableAdapter() .Fill(ds.Products); new NORTHWNDDataSetTableAdapters.CategoriesTableAdapter() .Fill(ds.Categories); return ds; } |
GetData は、NORTHWNDDataSet を作成し、設計時に Visual Studio によって作成されたアダプタを使用して "Products" および "Categories" テーブルにデータを挿入し、データセットを返します。
次に、DataBind メソッドの実装を示します。
C# |
コードのコピー
|
---|---|
void DataBind(object dataSource) { // ComboBox を連結します comboBox1.DataSource = dataSource; comboBox1.DisplayMember = "CategoryName"; comboBox1.ValueMember = "CategoryID"; // DataGridView を連結します dataGridView1.DataMember = "Products"; dataGridView1.DataSource = dataSource; // TextBox コントロールを連結します BindTextBox(textBox1, dataSource, "ProductName"); BindTextBox(textBox2, dataSource, "UnitPrice"); BindTextBox(textBox3, dataSource, "QuantityPerUnit"); BindTextBox(textBox4, dataSource, "UnitsInStock"); } void BindTextBox(TextBox txt, object dataSource, string dataMember) { var b = new Binding("Text", dataSource, "Products." + dataMember); txt.DataBindings.Add(b); } |
DataBind は、各コントロールのデータ連結プロパティを設定して、それらのコントロールを LiveLinq ビューに連結します。これは、プロパティウィンドウエディタを使用して以前に行ったこととまったく同じですが、今回はすべてをコードで行い、BindingSource コンポーネントを介さずに、コントロールを LiveLinq ビューに直接連結しています。
ここでプロジェクトを実行すると、前回とまったく同様に機能することがわかります。
通常、自分でデータ連結コードを記述すると、設計時エディタを使用し、Visual Studio によって自動的にコードを記述するより多少時間がかかります。一方、結果のコードはシンプルになり、管理も簡単で、他のプラットフォームへの移植も容易になります(次のセクションを参照)。
どちらの方法でも、フォーム内のコントロールの連結ソースとして LiveLinq ビューを使用できます。