C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[7]: 【WPF】DataGridへのVBによる列・行の追加


(過去ログ 99 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■58977 / inTopicNo.1)  【WPF】DataGridへのVBによる列・行の追加
  
□投稿者/ *aka*aka* (45回)-(2011/05/07(Sat) 19:21:09)

分類:[VB.NET/VB2005 以降] 

2011/05/07(Sat) 21:14:25 編集(投稿者)
2011/05/07(Sat) 21:14:22 編集(投稿者)

【環境:Win7 Pro、Visual Studio 2010 Express VB.NET】

初歩的な質問になりますが、
【WPF】DataGridへのコード(VB)による列・行の追加を
具体的なコードサンプルで教えて頂けないでしょうか。

【Windows Form】DataGridViewへの列・行の追加は
ネットで調べ簡単に行えたのですが、
【WPF】DataGridへはうまくいきません。

よろしくお願いします。

---
DBに「SQL Server 2008 R2」を使用しているのですが、VB2010 Express版だとデータソースで接続出来ない制限があります。そこでコード(VB)で、[DataGrid]の内容を構築しようというのが目的になります。


引用返信 編集キー/
■58979 / inTopicNo.2)  Re[1]: 【WPF】DataGridへのVBによる列・行の追加
□投稿者/ shu (672回)-(2011/05/07(Sat) 23:59:25)
No58977 (*aka*aka* さん) に返信

DataTableをバインドする例です。

       Dim ds As New DataSet
        Dim tbl = ds.Tables.Add()
        With tbl.Columns
            .Add("Column1", GetType(String))
            .Add("Column2", GetType(String))
        End With

        tbl.Rows.Add(New String() {"a", "b"})
        tbl.Rows.Add(New String() {"c", "d"})
        tbl.Rows.Add(New String() {"e", "f"})
        tbl.Rows.Add(New String() {"g", "h"})

        DataGrid1.Columns.Add(New DataGridTextColumn() With {.Header = "Col1", .Binding = New Binding() With {.Path = New PropertyPath("Column1")}})
        DataGrid1.Columns.Add(New DataGridTextColumn() With {.Header = "Col2", .Binding = New Binding() With {.Path = New PropertyPath("Column2")}})

        DataGrid1.DataContext = tbl

引用返信 編集キー/
■59009 / inTopicNo.3)  Re[2]: 【WPF】DataGridへのVBによる列・行の追加
□投稿者/ *aka*aka* (46回)-(2011/05/09(Mon) 10:04:32)
No58979 (shu さん) に返信
> ■No58977 (*aka*aka* さん) に返信
>
> DataTableをバインドする例です。
>
> Dim ds As New DataSet
> Dim tbl = ds.Tables.Add()
> With tbl.Columns
> .Add("Column1", GetType(String))
> .Add("Column2", GetType(String))
> End With
>
> tbl.Rows.Add(New String() {"a", "b"})
> tbl.Rows.Add(New String() {"c", "d"})
> tbl.Rows.Add(New String() {"e", "f"})
> tbl.Rows.Add(New String() {"g", "h"})
>
> DataGrid1.Columns.Add(New DataGridTextColumn() With {.Header = "Col1", .Binding = New Binding() With {.Path = New PropertyPath("Column1")}})
> DataGrid1.Columns.Add(New DataGridTextColumn() With {.Header = "Col2", .Binding = New Binding() With {.Path = New PropertyPath("Column2")}})
>
> DataGrid1.DataContext = tbl

ご回答ありがとうございます。

が、試そうと思いましたら「型'DataGridTextColumn'が定義されていません。」とエラーになり、
「Imports System.Windows.Controls」とインポートすれば回避出来たのですが、
今度は「New Binding()」の箇所が「この引数の数を受け付ける'New'がないため、オーバーロードの解決に失敗しました。」とエラーになってしまいました。

自己解決出来るチカラが無く、
またご教示願えれば助かります。


引用返信 編集キー/
■59017 / inTopicNo.4)  Re[3]: 【WPF】DataGridへのVBによる列・行の追加
□投稿者/ shu (675回)-(2011/05/09(Mon) 12:48:44)
2011/05/09(Mon) 12:50:11 編集(投稿者)

No59009 (*aka*aka* さん) に返信

WPFアプリケーションプロジェクトを作成して
DataGrid1を貼り付けItemsSourceでDataContextを選んで(※これ重要、抜けてました)
Loadedイベントに上記コードを記述して
Imports System.Dataを記述
しただけですが、環境が違いますか?

> New Binding() With {.Path = New PropertyPath("Column1")}
ですが New Binding("Column1")
で大丈夫でした。
引用返信 編集キー/
■59018 / inTopicNo.5)  Re[4]: 【WPF】DataGridへのVBによる列・行の追加
□投稿者/ *aka*aka* (47回)-(2011/05/09(Mon) 13:59:06)
No59017 (shu さん) に返信
> 2011/05/09(Mon) 12:50:11 編集(投稿者)
>
> ■No59009 (*aka*aka* さん) に返信
>
> WPFアプリケーションプロジェクトを作成して
> DataGrid1を貼り付けItemsSourceでDataContextを選んで(※これ重要、抜けてました)
> Loadedイベントに上記コードを記述して
> Imports System.Dataを記述
> しただけですが、環境が違いますか?
>
>>New Binding() With {.Path = New PropertyPath("Column1")}
> ですが New Binding("Column1")
> で大丈夫でした。


●DataGrid1を貼り付けItemsSourceでDataContextを選ぶ
●Imports System.Dataを記述
↑↑の通りにもう一度しましたが、
やはり「New Binding()」の箇所が「この引数の数を受け付ける'New'がないため、オーバーロードの解決に失敗しました。」とエラーになってしまいました。
引用返信 編集キー/
■59019 / inTopicNo.6)  Re[5]: 【WPF】DataGridへのVBによる列・行の追加
□投稿者/ shu (676回)-(2011/05/09(Mon) 14:16:29)
No59018 (*aka*aka* さん) に返信

>>しただけですが、環境が違いますか?
どうでしょう?

Binding は System.Windows.Dataのものであって
System.Windows.Formsのものではありませんよ?

引用返信 編集キー/
■59058 / inTopicNo.7)  Re[6]: 【WPF】DataGridへのVBによる列・行の追加
□投稿者/ *aka*aka* (48回)-(2011/05/10(Tue) 18:19:41)
No59019 (shu さん) に返信
> ■No59018 (*aka*aka* さん) に返信
>
> >>しただけですが、環境が違いますか?
> どうでしょう?
>
> Binding は System.Windows.Dataのものであって
> System.Windows.Formsのものではありませんよ?
>

---
●Imports System.Windows.Controls
●Imports System.Data
---
とインポートを明示してありましたが、
やはり上記のようなエラーが出るので、
---
●New System.Windows.Data.Binding()
●New Windows.PropertyPath
---
と直接明示記述すれば動きました。

お手数お掛けいたしました。
ありがとうございます。


解決済み
引用返信 編集キー/
■59063 / inTopicNo.8)  Re[7]: 【WPF】DataGridへのVBによる列・行の追加
□投稿者/ よねKEN (698回)-(2011/05/10(Tue) 22:14:44)
No59058 (*aka*aka* さん) に返信
>>Binding は System.Windows.Dataのものであって
>>System.Windows.Formsのものではありませんよ?
>
> ---
> ●Imports System.Windows.Controls
> ●Imports System.Data
> ---
> とインポートを明示してありましたが、
> やはり上記のようなエラーが出るので、
> ---
> ●New System.Windows.Data.Binding()
> ●New Windows.PropertyPath
> ---
> と直接明示記述すれば動きました。

老婆心ながら、なぜそうしたら動いたのかは理由は把握されていますか?
もし理由を把握されていないようであれば、「名前空間」と「Imorts文」について調べてみるとよいですよ。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -