I have a VS2008, C# WPF, Excel AddIn; Under some case, My addin throws exception like
A first chance exception of type 'System.InvalidOperationException' occurred in PresentationFramework.dll
A first chance exception of type 'System.NullReferenceException' occurred in PresentationFramework.dll
but I could not locate where the exception comes from. I know it is b/c data binding. but unable to find out where. Each time I step in, VS tracks to a method which executes w/o error, then after that, the exception throws and but no clue of which line of code.
I have been struggling this for days and could not make a little progress.
Pls help out. thanks
Edit, it is too long to fit in comment. So I just put xaml file here. @xmal file that throws the exception. It is DataGridComboBoxColumn that throws the exception
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dg="http://schemas.microsoft.com/wpf/2008/toolkit" >
AutoGenerateColumns="False"
Style="{StaticResource DataGridStyle}"
SelectionMode="Extended"
GridLinesVisibility="None"
HeadersVisibility="Column" RowDetailsVisibilityMode="VisibleWhenSelected"
ItemsSource="{Binding BasketItems, Mode=OneWay}" CanUserAddRows="False" CanUserDeleteRows="False"
SelectionUnit="FullRow" SelectedItem="{Binding SelectedRelComplete}"
VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled"
SelectionChanged="BasketDgSelectionChanged"
Drop="DataGridDrop"
DragEnter="DataGridDragEnter"
AllowDrop="True"
>
SelectedValueBinding="{Binding Path=RelParams.ColumnName, UpdateSourceTrigger=PropertyChanged}"
DisplayMemberPath="cName"
SelectedValuePath="cName">
Click="BtnClear_Click">Clear
ToolTip="Send Series Data to Table"
Name="SendToTable" Margin="2" Command="{Binding SendToTableCommand}"
CommandParameter="{Binding ElementName=SendToTable}">Send to Table
Name="CreateCurveSurface" Margin="2"
ToolTip="Send Curve Surface to Table"
IsEnabled="{Binding OnlyOneFutureItemExist}"
Click="CreateCurveSurfaceClick"
>Send to Table
Edit: here is stack trace
Name:NullReferenceException Message:Object reference not set to an
instance of an object. Target:Void
RestoreAttachedItemValue(System.Windows.DependencyObject,
System.Windows.DependencyProperty) Stack: at
Microsoft.Windows.Controls.DataGridRow.RestoreAttachedItemValue(DependencyObject
objectWithProperty, DependencyProperty property) at
Microsoft.Windows.Controls.DataGridRow.SyncProperties(Boolean
forcePrepareCells) at
Microsoft.Windows.Controls.DataGridRow.PrepareRow(Object item,
DataGrid owningDataGrid) at
Microsoft.Windows.Controls.DataGrid.PrepareContainerForItemOverride(DependencyObject
element, Object item) at
System.Windows.Controls.ItemsControl.MS.Internal.Controls.IGeneratorHost.PrepareItemContainer(DependencyObject
container, Object item) at
System.Windows.Controls.ItemContainerGenerator.System.Windows.Controls.Primitives.IItemContainerGenerator.PrepareItemContainer(DependencyObject
container) at
System.Windows.Controls.VirtualizingStackPanel.InsertContainer(Int32
childIndex, UIElement container, Boolean isRecycled) at
System.Windows.Controls.VirtualizingStackPanel.AddContainerFromGenerator(Int32
childIndex, UIElement child, Boolean newlyRealized) at
System.Windows.Controls.VirtualizingStackPanel.BringIndexIntoView(Int32
index) at
Microsoft.Windows.Controls.DataGrid.ScrollRowIntoView(Object item)
at Microsoft.Windows.Controls.DataGrid.OnScrollIntoView(Object arg)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate
callback, Object args, Int32 numArgs) at
MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object
source, Delegate method, Object args, Int32 numArgs, Delegate
catchHandler) at
System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback,
Object args, Int32 numArgs, Delegate catchHandler) at
System.Windows.Threading.DispatcherOperation.InvokeImpl() at
System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object
state) at System.Threading.ExecutionContext.runTryCode(Object
userData) at
System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode
code, CleanupCode backoutCode, Object userData) at
System.Threading.ExecutionContext.RunInternal(ExecutionContext
executionContext, ContextCallback callback, Object state) at
System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state, Boolean
ignoreSyncCtx) at
System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state) at
System.Windows.Threading.DispatcherOperation.Invoke() at
System.Windows.Threading.Dispatcher.ProcessQueue() at
System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32
msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at
MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam,
IntPtr lParam, Boolean& handled) at
MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) at
System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate
callback, Object args, Int32 numArgs) at
MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object
source, Delegate method, Object args, Int32 numArgs, Delegate
catchHandler) at
System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback,
Object args, Int32 numArgs, Delegate catchHandler) at
System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority
priority, TimeSpan timeout, Delegate method, Object args, Int32
numArgs) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd,
Int32 msg, IntPtr wParam, IntPtr lParam) at
MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg) at
System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame
frame) at
System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at System.Windows.Window.ShowHelper(Object booleanBox) at
System.Windows.Window.Show() at System.Windows.Window.ShowDialog()
No comments:
Post a Comment