私のWPFアプリケーションに奇妙な問題があります。 私はMVVMパターンを使用していますし、これは私のMainWindowViewModelの一部です:INotifyPropertyChangedイベントが呼び出されたときにアプリケーションがハングアップする
// GridView control in MainWindow.xaml binded to this property
public DataTable DT
{
get { return _dt; }
}
// INotifyPropertyChanged Member for refreshing bindings
public void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
// my function
void OnCreateTable()
{
_dt = // creating new table here
OnPropertyChanged("DT"); // refresh binding
}
私はほとんどオールウェイズOnCreateTable()プログラムを呼び出すと(時々ようがないCPUの使用率が、他のエラーと100%のCPU使用率でハングアップしますGridViewコントロールのデータが正しくありません)。
私はいくつかの事実を発見デバッグ中:OnPropertyChangedを前に一時停止を行う場合
1)OnCreateTable()およびデータ・バインディングは、正常に動作:
void OnCreateTable()
{
_dt = // creating new table here
Thread.Sleep(1000); //!!!
OnPropertyChanged("DT"); // refresh binding
}
2)OnCreateTable()とデータバインディングトレース場合は正常に動作それは "ステップオーバー"(OnPropertyChangedの前に一時停止するので)です。
OnPropertyChangedの前に一時停止する必要がある理由を理解できません。
スレッドが関与していますか? –
いいえ、私はhavent。そのシンプルなアプリケーションはまだありません。 –
データテーブルにはいくつの行がありますか?バインドせずにitemssourceを直接設定するとどうなりますか(テストのためだけ) – blindmeis