Отладка параметров свойств в Visual Studio 2008 с помощью INotifyPropertyChanged - PullRequest
0 голосов
/ 15 июня 2009

У меня есть класс со свойством, которое устанавливается другим классом. Внутри этого свойства set программа взрывается.

Мне просто нужно знать, какой класс на самом деле устанавливает свойство.

Я думал, что смогу просто посмотреть на трассировку стека, но поскольку я использую 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}, объект sender = {System.Windows.Controls.TextBox}, объект args = {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") + 0 1013 байт *

Ответы [ 2 ]

1 голос
/ 15 июня 2009

Это немного старая школа, но вы пытались добавить операторы Debug.WriteLine () для отслеживания выполнения вашей программы? Вы можете просмотреть результаты Debug.WriteLine () в окне VS Output, пока ваша программа работает.

1 голос
/ 15 июня 2009

Хм. , .

Вы можете установить точку останова в установщике своего свойства и использовать окно Call Stack, чтобы отследить, кто его вызвал.

...