2011-01-26 9 views
0

H SQL CEとLINQを使用しています。 WPF ToolkitのDatagridコントロールのItemSourceのproperty typeof Tableをバインドします。WPF Toolkit DataGrid /データを更新しません

このようなものです。

public Table<TestNick> MySource 
    { 
     get { return _tab; } 
     set 
     { 
      _tab = value; 
      NotifyPropertyChanged("MySource"); 

     } 
    } 


    <Controls:DataGrid Name="Dg" 
         ItemsSource="{Binding Path=MySource, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" 
         Grid.Row="0"/> 

私はLINQとDBからデータを取得:

 const string connStr = @"Spiri_SQL_CE_DB.sdf"; 
     _dc = new Spiri_SQL_CE_DB(connStr); 
     MySource = _dc.TestNick; 

私は最後の行にブレークポイントを追加した場合、私はテーブルTestNickからすべての値を参照してください、それは、データグリッドで、このデータをロードしません。

何が悪いですか?

EDITED:

私は背後にあるコードでDataGridコントロールのItemSourceを確認し、アイテムのソースが正しいですが、私は、DataGrid(ビュー)、「古いデータ」でご覧ください。

バインディングが正しい必要があります。問題は、DataGridコントロールがデータを更新しないことです。

+0

ちょうど推測機能ではありませんいただきましボタンをデバッグするために、BindingExpressionがあります出力ウィンドウのエラー? – DHN

+0

バインディングはOKですが、DataGridのItemSourceプロパティは良好なデータですが、ビューでは古いデータが表示されます。 –

+0

UpdateSourceTrigger = PropertyChangedは不要ですので削除できます –

答えて

0
  • 必ずデータグリッドのautogeneratecolumnsを作る本当です
  • 出力ウィンドウをチェック実行中に任意の結合の問題
  • がある場合は、別のトリックは、ビュー上のボタンを配置し、そのクリックの機能の背後にあるコードを書くことですその空の試みは、ViewModelに/モデルのgetDatagridData関数を呼び出して、それがロードされている場合、あなたのNotifyPropertyChangedを意味する場合も負荷には、参照する場合はデータグリッドのitemsourceは、まだ
+0

Oki、問題はDataGridのItemSourceが正しいことですが、実際のデータは表示されません。私は古いデータを見る。 –

+0

ボタンをビューに追加すると(デバッグ目的のためだけに)、getData関数を呼び出すためのコードを記述し、その後に新しいデータがある場合は、そのコードを記述します。つまり、NotifyPropertyChangeが機能していないことを意味します。また、NotifyPropertyChangeの中にブレークポイントを置くこともできます。 ObservableCollectionも使用していますか? – WhoIsNinja

+0

OPが参照を置き換えているため、ObservableCollectionは重要ではありません。 –

関連する問題