0

別のクラスによって設定されるプロパティを持つクラスがあります。このプロパティ セッター内で、プログラムが爆発します。

実際にプロパティを設定するクラスを知る必要があります。

スタックトレースを見るだけでいいと思っていましたが、INotifyPropertyChanged を使用しているため、探している情報がすべて得られないと思います。

これが役立つ場合のスタック トレースは次のとおりです。

    MyProject!MyProject.MyClass.MyProperty.set(string value = "") Line 24   C#
[Native to Managed Transition]  
[Managed to Native Transition]  
System.Windows.dll!System.Windows.CLRPropertyListener.Value.set(object value = "") + 0x58 bytes 
System.Windows.dll!System.Windows.PropertyAccessPathStep.Value.set(object value = "") + 0x28 bytes  
System.Windows.dll!System.Windows.PropertyPathListener.LeafValue.set(object value = "") + 0x28 bytes    
System.Windows.dll!System.Windows.Data.BindingExpression.UpdateValue() + 0x26c bytes    

System.Windows.dll!System.Windows.Data.BindingExpression.TargetTextBoxLostFocus(オブジェクト送信者 = {System.Windows.Controls.TextBox}, System.Windows.RoutedEventArgs e = {System.Windows.RoutedEventArgs}) + 0x55 バイト
System.Windows .dll!System.Windows.CoreInvokeHandler.InvokeEventHandler(int typeIndex = 160、System.Delegate handlerDelegate = {System.Windows.RoutedEventHandler}、オブジェクトの送信者 = {System.Windows.Controls.TextBox}、オブジェクトの引数 = {System.Windows. RoutedEventArgs}) + 0x6b3 バイト System.Windows.dll!MS.Internal.JoltHelper.FireEvent(System.IntPtr unmanagedObj = 173934552、System.IntPtr unmanagedObjArgs = 273432032、int argsTypeIndex = 160、文字列 eventName = "M@2910") + 0x335バイト

4

2 に答える 2

1

少し古いやり方ですが、Debug.WriteLine() ステートメントを追加して、プログラムの実行をトレースしてみましたか? プログラムの実行中に、VS 出力ウィンドウで Debug.WriteLine() の結果を表示できます。

于 2009-06-15T18:31:17.413 に答える
1

うーん。. .

プロパティ セッターでポイントをブレークし、コール スタック ウィンドウを使用して、それが呼び出されたものを追跡できます。

于 2009-06-15T17:36:00.867 に答える