# HG changeset patch # User Steven Hollidge # Date 1335200241 -3600 # Node ID 177a9d1eba104f065dbed32b384a09d865ca130f # Parent 96e6fbd70f49e3f296bcbdb102b07126655319d2 Latest version diff -r 96e6fbd70f49 -r 177a9d1eba10 Glimpse/Glimpse.Old.vbproj --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Glimpse/Glimpse.Old.vbproj Mon Apr 23 17:57:21 2012 +0100 @@ -0,0 +1,190 @@ + + + + v3.5 + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {C72D72F7-C49B-46DF-BD6C-0E14DBCD8F95} + {A1591282-1198-4647-A2B1-27E5FF5F6F3B};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + Library + Glimpse + Glimpse + v5.0 + false + true + true + On + Binary + On + On + Silverlight + $(TargetFrameworkVersion) + + + + + 4.0 + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + true + true + true + true + Empty + Bin\Debug + Glimpse.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + SILVERLIGHT=1 + AllRules.ruleset + + + pdbonly + false + true + true + true + true + Bin\Release + Glimpse.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + SILVERLIGHT=1 + AllRules.ruleset + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + BrokenBindingsViewer.xaml + + + ExceptionsViewer.xaml + + + LoadExceptionViewer.xaml + + + GlimpseViewer.xaml + + + + + + + + + Designer + MSBuild:MarkupCompilePass1 + MSBuild:Compile + Designer + MSBuild:Compile + Designer + + + Designer + MSBuild:MarkupCompilePass1 + MSBuild:Compile + Designer + MSBuild:Compile + Designer + + + Designer + MSBuild:MarkupCompilePass1 + MSBuild:Compile + Designer + MSBuild:Compile + Designer + + + Designer + MSBuild:MarkupCompilePass1 + MSBuild:Compile + Designer + MSBuild:Compile + Designer + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + {D47E6045-91BB-4CD0-942F-FF015F10F7F2} + FloatableWindow + + + + + + + + + + + + \ No newline at end of file diff -r 96e6fbd70f49 -r 177a9d1eba10 Glimpse/Glimpse.Old.vbproj.user --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Glimpse/Glimpse.Old.vbproj.user Mon Apr 23 17:57:21 2012 +0100 @@ -0,0 +1,39 @@ + + + + + + + + + + en-US + false + + + + + + + + DynamicPage + True + False + False + + + + + + + + + True + + + True + + + + + \ No newline at end of file diff -r 96e6fbd70f49 -r 177a9d1eba10 Glimpse/Glimpse.vbproj --- a/Glimpse/Glimpse.vbproj Mon Apr 23 14:54:24 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,182 +0,0 @@ - - - - v3.5 - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {C72D72F7-C49B-46DF-BD6C-0E14DBCD8F95} - {A1591282-1198-4647-A2B1-27E5FF5F6F3B};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} - Library - Glimpse - Glimpse - v3.0 - false - true - true - On - Binary - On - On - Silverlight - $(TargetFrameworkVersion) - - - - - 3.5 - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - true - full - true - true - true - true - Empty - Bin\Debug - Glimpse.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - SILVERLIGHT=1 - AllRules.ruleset - - - pdbonly - false - true - true - true - true - Bin\Release - Glimpse.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - SILVERLIGHT=1 - AllRules.ruleset - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BrokenBindingsViewer.xaml - - - ExceptionsViewer.xaml - - - LoadExceptionViewer.xaml - - - GlimpseViewer.xaml - - - - - - - - - Designer - MSBuild:MarkupCompilePass1 - MSBuild:Compile - Designer - - - Designer - MSBuild:MarkupCompilePass1 - MSBuild:Compile - Designer - - - Designer - MSBuild:MarkupCompilePass1 - MSBuild:Compile - Designer - - - Designer - MSBuild:MarkupCompilePass1 - MSBuild:Compile - Designer - - - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - true - - - False - Windows Installer 3.1 - true - - - - - {D47E6045-91BB-4CD0-942F-FF015F10F7F2} - FloatableWindow - - - - - - - - - - - - \ No newline at end of file diff -r 96e6fbd70f49 -r 177a9d1eba10 Glimpse/Glimpse.vbproj.user --- a/Glimpse/Glimpse.vbproj.user Mon Apr 23 14:54:24 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ - - - - - - - - - - en-US - false - - - - - - - - DynamicPage - True - False - False - - - - - - - - - True - - - True - - - - - \ No newline at end of file diff -r 96e6fbd70f49 -r 177a9d1eba10 SilverlightGlimpse/SilverlightGlimpse/Controls/FloatableWindow/FloatableWindow.cs --- a/SilverlightGlimpse/SilverlightGlimpse/Controls/FloatableWindow/FloatableWindow.cs Mon Apr 23 14:54:24 2012 +0100 +++ b/SilverlightGlimpse/SilverlightGlimpse/Controls/FloatableWindow/FloatableWindow.cs Mon Apr 23 17:57:21 2012 +0100 @@ -432,7 +432,14 @@ public Panel ParentLayoutRoot { get { return _parentLayoutRoot; } - set { _parentLayoutRoot = value; } + set + { + _parentLayoutRoot = value; + var grid = _parentLayoutRoot as Grid; + if (grid == null) return; + Grid.SetRowSpan(this, grid.RowDefinitions.Count); + Grid.SetColumnSpan(this, grid.ColumnDefinitions.Count); + } } /// @@ -1295,8 +1302,18 @@ { if (ParentLayoutRoot != null) { - this.SetValue(Canvas.TopProperty, _verticalOffset); - this.SetValue(Canvas.LeftProperty, _horizontalOffset); + var canvas = ParentLayoutRoot as Canvas; + if (canvas != null) + { + this.SetValue(Canvas.TopProperty, _verticalOffset); + this.SetValue(Canvas.LeftProperty, _horizontalOffset); + } + else + { + this.HorizontalAlignment = HorizontalAlignment.Left; + this.VerticalAlignment = VerticalAlignment.Top; + } + this.ParentLayoutRoot.Children.Add(this); this.BringToFront(); } diff -r 96e6fbd70f49 -r 177a9d1eba10 SilverlightGlimpse/SilverlightGlimpse/Models/ObservableQueue.cs --- a/SilverlightGlimpse/SilverlightGlimpse/Models/ObservableQueue.cs Mon Apr 23 14:54:24 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,432 +0,0 @@ -//Original code: http://baboon.eu/post/2011/10/02/Using-a-decompiler-to-make-an-ObservableQueuelt;Tgt;.aspx -//Author: Baboon http://baboon.eu/ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Diagnostics; -using System.Runtime.InteropServices; -using System.Threading; -using System.Collections.Specialized; -using System.ComponentModel; - -namespace SilverlightGlimpse.Models -{ - /// Represents a first-in, first-out collection of objects. - /// Specifies the type of elements in the queue. - /// 1 - [DebuggerTypeProxy(typeof(System_QueueDebugView<>)), ComVisible(false), DebuggerDisplay("Count = {Count}")] - public class ObservableQueue : IEnumerable, ICollection, INotifyCollectionChanged, INotifyPropertyChanged - { - /// Enumerates the elements of a ObservableQueue. - - public struct Enumerator : IEnumerator - { - private readonly ObservableQueue _queue; - private int _index; - private readonly int _version; - private T _currentElement; - /// Gets the element at the current position of the enumerator. - /// The element in the ObservableQueue at the current position of the enumerator. - /// The enumerator is positioned before the first element of the collection or after - /// the last element. - public T Current - { - get - { - if (this._index < 0) - { - if (this._index == -1) throw new InvalidOperationException("Enumerator not started"); - throw new InvalidOperationException("Enumeration ended"); - } - return this._currentElement; - } - } - object IEnumerator.Current - { - get - { - if (this._index < 0) - { - if (this._index == -1) throw new InvalidOperationException("Enumerator not started"); - throw new InvalidOperationException("Enumeration ended"); - } - return this._currentElement; - } - } - internal Enumerator(ObservableQueue queue) - { - this._queue = queue; - this._version = this._queue._version; - this._index = -1; - this._currentElement = default(T); - } - /// Releases all resources used by the . - public void Dispose() - { - this._index = -2; - this._currentElement = default(T); - } - /// Advances the enumerator to the next element of the ObservableQueue. - /// true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. - /// The collection was modified after the enumerator was created. - public bool MoveNext() - { - if (this._version != this._queue._version) throw new InvalidOperationException("Enumerator version mismatch"); - if (this._index == -2) return false; - - this._index++; - if (this._index == this._queue._size) - { - this._index = -2; - this._currentElement = default(T); - return false; - } - this._currentElement = this._queue.GetElement(this._index); - return true; - } - void IEnumerator.Reset() - { - if (this._version != this._queue._version) throw new InvalidOperationException("Enumerator version mismatch"); - - this._index = -1; - this._currentElement = default(T); - } - } - - //TODO: refactor these: in or out? - private const int _MinimumGrow = 4; - private const int _ShrinkThreshold = 32; - private const int _GrowFactor = 200; - private const int _DefaultCapacity = 4; - - private T[] _arrayBackupField; - private T[] _array - { - get { return _arrayBackupField; } - set - { - if (_arrayBackupField == value) return; - _arrayBackupField = value; - RaiseCollectionChanged(NotifyCollectionChangedAction.Reset); - } - } - - private int _head; - private int _tail; - - private int _sizeBackupField; - private int _size - { - get { return _sizeBackupField; } - set - { - if (_sizeBackupField == value) return; - _sizeBackupField = value; - RaisePropertyChanged("Count"); - } - } - - private int _version; - private object _syncRoot; - private static T[] _emptyArray = new T[0]; - /// Gets the number of elements contained in the ObservableQueue. - /// The number of elements contained in the ObservableQueue. - public int Count { get { return this._size; } } - - bool ICollection.IsSynchronized { get { return false; } } - - object ICollection.SyncRoot - { - get - { - if (this._syncRoot == null) - { - Interlocked.CompareExchange(ref this._syncRoot, new object(), null); - } - return this._syncRoot; - } - } - /// Initializes a new instance of the ObservableQueue class that is empty and has the default - /// initial capacity. - public ObservableQueue() - { - this._array = _emptyArray; - } - /// Initializes a new instance of the ObservableQueue class that is empty and has - /// the specified initial capacity. - /// The initial number of elements that the ObservableQueue can contain. - /// - /// is less than zero. - public ObservableQueue(int capacity) - { - if (capacity < 0) throw new ArgumentOutOfRangeException("capacity", "Capacity cannot be negative"); - - this._array = new T[capacity]; - this._head = 0; - this._tail = 0; - this._size = 0; - } - /// Initializes a new instance of the ObservableQueue class that contains elements copied from - /// the specified collection and has sufficient capacity to accommodate the number of elements copied. - /// The collection whose elements are copied to the new ObservableQueue. - /// - /// is null. - public ObservableQueue(IEnumerable collection) - { - if (collection == null) throw new ArgumentNullException("collection"); - this._array = new T[4]; - this._size = 0; - this._version = 0; - using (var enumerator = collection.GetEnumerator()) - { - while (enumerator.MoveNext()) - { - this.Enqueue(enumerator.Current); - } - } - } - /// Removes all objects from the ObservableQueue. - /// 1 - public void Clear() - { - if (this._head < this._tail) - { - Array.Clear(this._array, this._head, this._size); - } - else - { - Array.Clear(this._array, this._head, this._array.Length - this._head); - Array.Clear(this._array, 0, this._tail); - } - this._head = 0; - this._tail = 0; - this._size = 0; - this._version++; - RaiseCollectionChanged(NotifyCollectionChangedAction.Reset); - } - /// Copies the ObservableQueue elements to an existing one-dimensional , - /// starting at the specified array index. - /// The one-dimensional that is the destination of the elements copied from - /// ObservableQueue. The must have zero-based indexing. - /// The zero-based index in at which copying begins. - /// - /// is null. - /// - /// is less than zero.B - /// The number of elements in the source ObservableQueue - /// is greater than the available space from to the end of the destination . - public void CopyTo(T[] array, int arrayIndex) - { - if (array == null) throw new ArgumentNullException("array"); - if (arrayIndex < 0 || arrayIndex > array.Length) throw new ArgumentOutOfRangeException("arrayIndex", "Index is out of range"); - int num = array.Length; - if (num - arrayIndex < this._size) throw new ArgumentException("Invalid offset length"); - - int num2 = (num - arrayIndex < this._size) ? (num - arrayIndex) : this._size; - if (num2 == 0) - { - return; - } - int num3 = (this._array.Length - this._head < num2) ? (this._array.Length - this._head) : num2; - Array.Copy(this._array, this._head, array, arrayIndex, num3); - num2 -= num3; - if (num2 > 0) - { - Array.Copy(this._array, 0, array, arrayIndex + this._array.Length - this._head, num2); - } - } - void ICollection.CopyTo(Array array, int index) - { - if (array == null) throw new ArgumentNullException("array"); - if (array.Rank != 1) throw new ArgumentException("Multidimension ranks are not supported"); - if (array.GetLowerBound(0) != 0) throw new ArgumentException("Lower bound cannot be zero"); - int length = array.Length; - if (index < 0 || index > length) throw new ArgumentOutOfRangeException("index", "Index is out of range"); - if (length - index < this._size) throw new ArgumentException("Invalid offset length"); - - int num = (length - index < this._size) ? (length - index) : this._size; - if (num == 0) return; - - try - { - int num2 = (this._array.Length - this._head < num) ? (this._array.Length - this._head) : num; - Array.Copy(this._array, this._head, array, index, num2); - num -= num2; - if (num > 0) - { - Array.Copy(this._array, 0, array, index + this._array.Length - this._head, num); - } - } - catch (ArrayTypeMismatchException) - { - throw new ArgumentException("Invalid array type"); - } - } - /// Adds an object to the end of the ObservableQueue. - /// The object to add to the ObservableQueue. The value can be null for reference types. - public void Enqueue(T item) - { - if (this._size == this._array.Length) - { - int num = (int)(this._array.Length * 200L / 100L); - if (num < this._array.Length + 4) - { - num = this._array.Length + 4; - } - this.SetCapacity(num); - } - this._array[this._tail] = item; - this._tail = (this._tail + 1) % this._array.Length; - this._size++; - this._version++; - RaiseCollectionChanged(NotifyCollectionChangedAction.Add); - } - /// Returns an enumerator that iterates through the ObservableQueue. - /// An for the ObservableQueue. - public Enumerator GetEnumerator() - { - return new Enumerator(this); - } - IEnumerator IEnumerable.GetEnumerator() - { - return new Enumerator(this); - } - IEnumerator IEnumerable.GetEnumerator() - { - return new Enumerator(this); - } - /// Removes and returns the object at the beginning of the ObservableQueue. - /// The object that is removed from the beginning of the ObservableQueue. - /// The ObservableQueue is empty. - public T Dequeue() - { - if (this._size == 0) throw new InvalidOperationException("Cannot dequeue from an empty queue!"); - T result = this._array[this._head]; - this._array[this._head] = default(T); - this._head = (this._head + 1) % this._array.Length; - this._size--; - this._version++; - RaiseCollectionChanged(NotifyCollectionChangedAction.Remove); - return result; - } - /// Returns the object at the beginning of the ObservableQueue without removing it. - /// The object at the beginning of the ObservableQueue. - /// The ObservableQueue is empty. - public T Peek() - { - if (this._size == 0) throw new InvalidOperationException("Cannot peek at en empty queue!"); - return this._array[this._head]; - } - /// Determines whether an element is in the ObservableQueue. - /// true if is found in the ObservableQueue; otherwise, false. - /// The object to locate in the ObservableQueue. The value can be null for reference types. - public bool Contains(T item) - { - int num = this._head; - int size = this._size; - EqualityComparer @default = EqualityComparer.Default; - while (size-- > 0) - { - if (item == null) - { - if (this._array[num] == null) - { - return true; - } - } - else - { - if (this._array[num] != null && @default.Equals(this._array[num], item)) - { - return true; - } - } - num = (num + 1) % this._array.Length; - } - return false; - } - internal T GetElement(int i) - { - return this._array[(this._head + i) % this._array.Length]; - } - /// Copies the ObservableQueue elements to a new array. - /// A new array containing elements copied from the ObservableQueue. - public T[] ToArray() - { - T[] array = new T[this._size]; - if (this._size == 0) - { - return array; - } - if (this._head < this._tail) - { - Array.Copy(this._array, this._head, array, 0, this._size); - } - else - { - Array.Copy(this._array, this._head, array, 0, this._array.Length - this._head); - Array.Copy(this._array, 0, array, this._array.Length - this._head, this._tail); - } - return array; - } - private void SetCapacity(int capacity) - { - T[] array = new T[capacity]; - if (this._size > 0) - { - if (this._head < this._tail) - { - Array.Copy(this._array, this._head, array, 0, this._size); - } - else - { - Array.Copy(this._array, this._head, array, 0, this._array.Length - this._head); - Array.Copy(this._array, 0, array, this._array.Length - this._head, this._tail); - } - } - this._array = array; - this._head = 0; - this._tail = ((this._size == capacity) ? 0 : this._size); - this._version++; - } - /// Sets the capacity to the actual number of elements in the ObservableQueue, - /// if that number is less than 90 percent of current capacity. - public void TrimExcess() - { - int num = (int)(this._array.Length * 0.9); - if (this._size < num) - { - this.SetCapacity(this._size); - } - } - - public event NotifyCollectionChangedEventHandler CollectionChanged = delegate { }; - private void RaiseCollectionChanged(NotifyCollectionChangedAction action) - { - var e = (action == NotifyCollectionChangedAction.Reset) - ? new NotifyCollectionChangedEventArgs(action) - : new NotifyCollectionChangedEventArgs(action, null, 0); - - CollectionChanged(this, e); - } - - public event PropertyChangedEventHandler PropertyChanged = delegate { }; - private void RaisePropertyChanged(string property) - { - PropertyChanged(this, new PropertyChangedEventArgs(property)); - } - } - - internal sealed class System_QueueDebugView - { - private readonly ObservableQueue _queue; - [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] - public T[] Items { get { return this._queue.ToArray(); } } - - public System_QueueDebugView(ObservableQueue queue) - { - if (queue == null) throw new ArgumentNullException("queue"); - this._queue = queue; - } - } -} \ No newline at end of file diff -r 96e6fbd70f49 -r 177a9d1eba10 SilverlightGlimpse/SilverlightGlimpse/Services/Glimpse.cs --- a/SilverlightGlimpse/SilverlightGlimpse/Services/Glimpse.cs Mon Apr 23 14:54:24 2012 +0100 +++ b/SilverlightGlimpse/SilverlightGlimpse/Services/Glimpse.cs Mon Apr 23 17:57:21 2012 +0100 @@ -18,7 +18,7 @@ private static Glimpse _instance; private DispatcherTimer _refreshBindingCountTimer; private static readonly TimeSpan FiveSeconds = new TimeSpan(0, 0, 0, 5); - private const int MAX_LOG_ITEMS = 100; + private const int MAX_LOG_ITEMS = 5; #endregion @@ -29,7 +29,7 @@ BindingErrors = new ObservableCollection(); ValidationErrors = new ObservableCollection(); Exceptions = new ObservableCollection(); - Log = new ObservableQueue(); + Log = new ObservableCollection(); } #endregion @@ -40,12 +40,12 @@ internal Application App { get; private set; } internal FloatableWindow GlimpseWindow { get; set;} internal string Title { get; set; } - internal ObservableCollection BindingErrors { get; private set; } - internal ObservableCollection ValidationErrors { get; private set; } - internal ObservableCollection Exceptions { get; private set; } + public ObservableCollection BindingErrors { get; private set; } + public ObservableCollection ValidationErrors { get; private set; } + public ObservableCollection Exceptions { get; private set; } internal FrameworkElement RootVisual { get; private set; } internal TimeSpan BindingsRefreshRate { get; private set; } - internal ObservableQueue Log { get; private set; } + public ObservableCollection Log { get; private set; } public bool IsInDebugMode { get { @@ -62,8 +62,9 @@ private void WriteToLog(string text, params object[] args) { - Log.Enqueue(string.Format(text, args)); - if (Log.Count > MAX_LOG_ITEMS) Log.Dequeue(); + var date = DateTime.Now.ToString("HH:mm:ss.ffff"); + Log.Add(string.Concat(date, "\t", string.Format(text, args))); + if (Log.Count > MAX_LOG_ITEMS) Log.RemoveAt(0); } #region UI Creation and Loading @@ -89,10 +90,6 @@ RootVisual.BindingValidationError += HostRootVisual_BindingValidationError; App.UnhandledException += Application_UnhandledException; - _refreshBindingCountTimer = new DispatcherTimer(); - _refreshBindingCountTimer.Tick += RefreshBindingCountTimer_Tick; - _refreshBindingCountTimer.Interval = BindingsRefreshRate; - GlimpseWindow = new FloatableWindow { Title = Title, @@ -103,7 +100,7 @@ if (Double.IsNaN(RootVisual.Width)) { //if the host control is autosized (consumes the browser window) then locate Glimpse in the top, left - GlimpseWindow.Show(50,10); + GlimpseWindow.Show(5,5); } else { @@ -116,6 +113,11 @@ GlimpseWindow.Show(dblLeft, 10); } + LoadBrokenBindings(RootVisual); + + _refreshBindingCountTimer = new DispatcherTimer(); + _refreshBindingCountTimer.Tick += RefreshBindingCountTimer_Tick; + _refreshBindingCountTimer.Interval = BindingsRefreshRate; _refreshBindingCountTimer.Start(); } @@ -151,6 +153,16 @@ if (isInherited) break; + //this code handles empty bindings on the Button controls + // unsure as to why the Button has an empty or unresolved binding of textblock type... + if ((frameworkElement.Name == "") + && (frameworkElement.GetType().Name == "TextBlock") + && (fieldInfo.Name == "TextProperty") + && (bindingExpression.ParentBinding.Path.Path == "")) + { + continue; + } + var brokenBinding = new BindingError( frameworkElement.Name, frameworkElement.GetType().Name, diff -r 96e6fbd70f49 -r 177a9d1eba10 SilverlightGlimpse/SilverlightGlimpse/SilverlightGlimpse.csproj --- a/SilverlightGlimpse/SilverlightGlimpse/SilverlightGlimpse.csproj Mon Apr 23 14:54:24 2012 +0100 +++ b/SilverlightGlimpse/SilverlightGlimpse/SilverlightGlimpse.csproj Mon Apr 23 17:57:21 2012 +0100 @@ -90,7 +90,6 @@ - diff -r 96e6fbd70f49 -r 177a9d1eba10 SilverlightGlimpse/SilverlightGlimpse/Views/BindingsViewer.xaml --- a/SilverlightGlimpse/SilverlightGlimpse/Views/BindingsViewer.xaml Mon Apr 23 14:54:24 2012 +0100 +++ b/SilverlightGlimpse/SilverlightGlimpse/Views/BindingsViewer.xaml Mon Apr 23 17:57:21 2012 +0100 @@ -16,11 +16,10 @@ - - + @@ -28,8 +27,6 @@ - - diff -r 96e6fbd70f49 -r 177a9d1eba10 SilverlightGlimpse/SilverlightGlimpse/Views/BindingsViewer.xaml.cs --- a/SilverlightGlimpse/SilverlightGlimpse/Views/BindingsViewer.xaml.cs Mon Apr 23 14:54:24 2012 +0100 +++ b/SilverlightGlimpse/SilverlightGlimpse/Views/BindingsViewer.xaml.cs Mon Apr 23 17:57:21 2012 +0100 @@ -7,7 +7,7 @@ public BindingsViewer() { InitializeComponent(); - lbBindings.DataContext = Glimpse.Service.BindingErrors; + lbBindings.ItemsSource = Glimpse.Service.BindingErrors; } } } \ No newline at end of file diff -r 96e6fbd70f49 -r 177a9d1eba10 SilverlightGlimpse/SilverlightGlimpse/Views/LogViewer.xaml --- a/SilverlightGlimpse/SilverlightGlimpse/Views/LogViewer.xaml Mon Apr 23 14:54:24 2012 +0100 +++ b/SilverlightGlimpse/SilverlightGlimpse/Views/LogViewer.xaml Mon Apr 23 17:57:21 2012 +0100 @@ -11,15 +11,7 @@ - - - - - - - + diff -r 96e6fbd70f49 -r 177a9d1eba10 SilverlightGlimpse/SilverlightGlimpse/Views/LogViewer.xaml.cs --- a/SilverlightGlimpse/SilverlightGlimpse/Views/LogViewer.xaml.cs Mon Apr 23 14:54:24 2012 +0100 +++ b/SilverlightGlimpse/SilverlightGlimpse/Views/LogViewer.xaml.cs Mon Apr 23 17:57:21 2012 +0100 @@ -7,7 +7,7 @@ public LogViewer() { InitializeComponent(); - lbLog.DataContext = Glimpse.Service.Log; + lbLog.ItemsSource = Glimpse.Service.Log; } } } \ No newline at end of file diff -r 96e6fbd70f49 -r 177a9d1eba10 SilverlightGlimpse/SilverlightValidation/Views/UserListView.xaml --- a/SilverlightGlimpse/SilverlightValidation/Views/UserListView.xaml Mon Apr 23 14:54:24 2012 +0100 +++ b/SilverlightGlimpse/SilverlightValidation/Views/UserListView.xaml Mon Apr 23 17:57:21 2012 +0100 @@ -5,18 +5,20 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" - d:DesignHeight="400" + d:DesignHeight="500" d:DesignWidth="725" mc:Ignorable="d"> - + + + - + @@ -25,17 +27,20 @@ Grid.Column="1" HorizontalAlignment="Right" Orientation="Horizontal"> -