view SilverlightValidation/SilverlightGlimpse/Controls/GlimpseViewer.xaml.cs @ 59:3591c26bd63e

MVVMLight added
author Steven Hollidge <stevenhollidge@hotmail.com>
date Sat, 21 Apr 2012 19:20:28 +0100
parents 241e2f22ed3c
children
line wrap: on
line source

using System.Collections.Specialized;
using System.Windows;

using SilverlightGlimpse.Models;
using SilverlightGlimpse.Services;

namespace SilverlightGlimpse.Controls
{
    public partial class GlimpseViewer
    {
        public GlimpseViewer()
        {
            InitializeComponent();
            this.DataContext = GlimpseService.CreateInstance;
            GlimpseService.CreateInstance.HostExceptions.CollectionChanged += HostExceptions_CollectionChanged;
        }

        private void btnContract_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            this.layoutViewer.Visibility = Visibility.Collapsed;
        }

        private void btnExpand_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            this.layoutViewer.Visibility = Visibility.Visible;
        }

        private void HostExceptions_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            int unhandledExceptionCount = 0;
            int validationExceptionCount = 0;

            foreach (ExceptionWrapper ew in GlimpseService.CreateInstance.HostExceptions)
            {
                if (ew.IsValidationException)
                    validationExceptionCount++;
                else
                    unhandledExceptionCount++;
            }

            this.tbValidationExceptions.Text = validationExceptionCount.ToString();

            this.elpValidationExceptions.Fill = validationExceptionCount == 0
                ? this.noExceptionsBrush
                : this.hasExceptionsBrush;

            this.tbUnhandledExceptions.Text = unhandledExceptionCount.ToString();

            this.elpUnhandledExceptions.Fill = unhandledExceptionCount == 0
                ? this.noExceptionsBrush
                : this.hasExceptionsBrush;
        }
    }
}