2010-11-18 15 views
3

WPFToolkitのDataGridを使用してデータを表示します。WPFでDataTableとDataGridを使用するとエラーが発生する

のDataTableがそのように

myTable = new DataTable(); 
DataColumn col; 
col = new DataColumn(); 
col.DataType = System.Type.GetType("System.Int64"); 
col.ColumnName = "ID"; 
col.ReadOnly = true; 
col.Unique = false; 
myTable.Columns.Add(col); 

col = new DataColumn(); 
col.DataType = System.Type.GetType("System.String"); 
col.ColumnName = "Name"; 
col.ReadOnly = true; 
col.Unique = false; 
myTable.Columns.Add(col); 

としてmyfile.xaml.csに初期化されます。

としては、私はmyfile.xaml.csに

myGrid.ItemsSource = myTable.DefaultView; 

を使用し、ここで提案しました。 myfile.xamlで

は私は

<my:DataGrid Name="myGrid" xmlns:my="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit"/> 

を定義している私は

DataRow row = myTable.NewRow(); 
row["ID"] = 123; 
row["Name"] = "MyName"; 

Action action =() => myTable.Rows.Add(row); 
Dispatcher.Invoke(action); 

とテーブルにエントリを追加するエントリしかしながら、GUIで正しくグリッドに追加されます次のエラーが表示されます。

System.Windows.Data Error: 39 : BindingExpression path error: 'ID' property not found on 'object' ''Object' (HashCode=29890231)'. BindingExpression:Path=ID; DataItem='Object' (HashCode=29890231); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String') 
System.Windows.Data Error: 39 : BindingExpression path error: 'Name' property not found on 'object' ''Object' (HashCode=29890231)'. BindingExpression:Path=Name; DataItem='Object' (HashCode=29890231); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String') 

このエラーを修正しましたか? ヒント?

ありがとうございます。

+0

FWIWを追加する前のdataTableにあなたの行を追加します - 私はちょうどあなたのコードを実行した「ままの3.5で、エラーなく動作しました。たぶんあなたは壊れたツールキットDLLを持っていますか?または? –

+0

その情報をお寄せいただきありがとうございます。だから多分それは単なる設定上の問題です。 – Simon

答えて

0

これは、コードを実行する順序と関係があると思います。これを変更してみてください:この中

DataRow row = myTable.NewRow(); 
row["ID"] = 123; 
row["Name"] = "MyName"; 

Action action =() => myTable.Rows.Add(row); 
Dispatcher.Invoke(action); 

DataRow row = myTable.NewRow(); 
myTable.Rows.Add(row); 
row["ID"] = 123; 
row["Name"] = "MyName"; 

すなわち:あなたが行に項目

+0

残念ながら、注文を変更しても役に立たなかった。そして、このコードはメイン(GUI)スレッドによって呼び出されないので、私はActionとDispatcherを保有しなければなりません。 – Simon

+0

hmmm keinglück...私は一見します。私は質問がありますが、4.0フレームワークに含まれているものではなく、なぜツールキットのDataGridを使用していますか? – David

+0

私は3.5 – Simon

関連する問題