|
|
|
|
@ -105,6 +105,7 @@ namespace Debugger.AddIn.Visualizers.GridVisualizer
@@ -105,6 +105,7 @@ namespace Debugger.AddIn.Visualizers.GridVisualizer
|
|
|
|
|
|
|
|
|
|
public void Refresh() |
|
|
|
|
{ |
|
|
|
|
try { |
|
|
|
|
// clear ListView
|
|
|
|
|
listView.ItemsSource = null; |
|
|
|
|
ScrollViewer listViewScroller = listView.GetScrollViewer(); |
|
|
|
|
@ -124,7 +125,7 @@ namespace Debugger.AddIn.Visualizers.GridVisualizer
@@ -124,7 +125,7 @@ namespace Debugger.AddIn.Visualizers.GridVisualizer
|
|
|
|
|
// Value is IList
|
|
|
|
|
DebugType iListType, listItemType; |
|
|
|
|
if (shownValue.Type.ResolveIListImplementation(out iListType, out listItemType)) { |
|
|
|
|
gridValuesProvider = CreateListValuesProvider(shownExpr, iListType, listItemType); |
|
|
|
|
gridValuesProvider = CreateListValuesProvider(shownValue, iListType, listItemType); |
|
|
|
|
} else { |
|
|
|
|
// Value is IEnumerable
|
|
|
|
|
DebugType iEnumerableType, itemType; |
|
|
|
|
@ -136,7 +137,8 @@ namespace Debugger.AddIn.Visualizers.GridVisualizer
@@ -136,7 +137,8 @@ namespace Debugger.AddIn.Visualizers.GridVisualizer
|
|
|
|
|
gridValuesProvider = enumerableValuesProvider;*/ |
|
|
|
|
DebugType debugListType; |
|
|
|
|
var debugListExpression = DebuggerHelpers.CreateDebugListExpression(shownExpr, itemType, out debugListType); |
|
|
|
|
gridValuesProvider = CreateListValuesProvider(debugListExpression, debugListType, itemType); |
|
|
|
|
var debugList = debugListExpression.Evaluate(WindowsDebugger.CurrentProcess); |
|
|
|
|
gridValuesProvider = CreateListValuesProvider(debugList, debugListType, itemType); |
|
|
|
|
} else { |
|
|
|
|
// Value cannot be displayed in GridVisualizer
|
|
|
|
|
return; |
|
|
|
|
@ -148,11 +150,16 @@ namespace Debugger.AddIn.Visualizers.GridVisualizer
@@ -148,11 +150,16 @@ namespace Debugger.AddIn.Visualizers.GridVisualizer
|
|
|
|
|
this.columnHider = new GridViewColumnHider((GridView)this.listView.View); |
|
|
|
|
cmbColumns.ItemsSource = this.columnHider.HideableColumns; |
|
|
|
|
} |
|
|
|
|
} catch (GetValueException ex) { |
|
|
|
|
// TODO display ex msg
|
|
|
|
|
} catch (DebuggerVisualizerException ex) { |
|
|
|
|
// TODO display ex msg
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ListValuesProvider CreateListValuesProvider(ICSharpCode.NRefactory.Ast.Expression targetObject, DebugType iListType, DebugType listItemType) |
|
|
|
|
ListValuesProvider CreateListValuesProvider(Value targetValue, DebugType iListType, DebugType listItemType) |
|
|
|
|
{ |
|
|
|
|
var listValuesProvider = new ListValuesProvider(targetObject, iListType, listItemType); |
|
|
|
|
var listValuesProvider = new ListValuesProvider(targetValue, listItemType); |
|
|
|
|
var virtCollection = new VirtualizingCollection<ObjectValue>(listValuesProvider); |
|
|
|
|
this.listView.ItemsSource = virtCollection; |
|
|
|
|
return listValuesProvider; |
|
|
|
|
|