Click here to Skip to main content
11,641,708 members (49,279 online)
Click here to Skip to main content
Add your own
alternative version

Introducing the Model Thread View Thread Pattern

, 1 May 2010 BSD 85.6K 721 172
Reduce threading code, and increase UI responsiveness with a new pattern extending MVVM.
Mtvt_2010_5_1__12_15.zip
Libraries
DanielVaughan
DanielVaughan.Silverlight.dll
DanielVaughan.Silverlight.pdb
Microsoft.Practices.ServiceLocation.dll
Microsoft.Practices.Unity.dll
System.ServiceModel.PollingDuplex.dll
System.Xml.Linq.dll
Prism
Silverlight
Microsoft.Practices.Composite.dll
Microsoft.Practices.Composite.pdb
Microsoft.Practices.Composite.Presentation.dll
Microsoft.Practices.Composite.Presentation.pdb
Microsoft.Practices.ServiceLocation.dll
System.Windows.Controls.dll
Mtvt
DanielVaughan.Mtvt.suo
DanielVaughan.Mtvt.vsmdi
Local.testsettings
TraceAndTestImpact.testsettings
DanielVaughan.MtvtExample
Bin
Debug
ar
bg
ca
cs
da
de
el
es
et
eu
fi
fr
he
hr
hu
id
it
ja
ko
lt
lv
ms
nl
no
pl
Properties
pt
pt-BR
ro
ru
sk
sl
sr-Cyrl-CS
sr-Latn-CS
sv
th
tr
uk
vi
zh-Hans
zh-Hant
Release
Collections
CommandModel
ComponentModel
Concurrency
Diagrams
OverviewDiagram.cd
Images
WpfDisciplesBanner.png
obj
Debug
DanielVaughan.MtvtExample.g.resources
DesignTimeResolveAssemblyReferences.cache
DesignTimeResolveAssemblyReferencesInput.cache
TempPE
Properties
Service References
UIModel
DanielVaughan.MtvtExample.Tests
Bin
Debug
ar
bg
ca
cs
da
de
el
es
et
eu
fi
fr
he
hr
hu
id
it
ja
ko
lt
lv
ms
nl
no
pl
Properties
pt
pt-BR
ro
ru
sk
sl
sr-Cyrl-CS
sr-Latn-CS
sv
th
tr
uk
vi
zh-Hans
zh-Hant
Release
Mocks
obj
Debug
DanielVaughan.MtvtExample.Tests.g.resources
DesignTimeResolveAssemblyReferencesInput.cache
ResolveAssemblyReference.cache
TempPE
Properties
DanielVaughan.MtvtExample.Web
bin
ClientBin
obj
Debug
DesignTimeResolveAssemblyReferencesInput.cache
TempPE
Properties
Prism
CAL
CAL.vsmdi
CompositeApplicationLibrary.4.5.resharper.user
CompositeApplicationLibrary_Desktop.4.5.resharper.user
LocalTestRun.testrunconfig
Desktop
Composite
OpenSource.snk
bin
Events
Logging
Modularity
obj
Debug
Composite.Desktop.csproj.GenerateResource.Cache
Microsoft.Practices.Composite.dll
Microsoft.Practices.Composite.pdb
Microsoft.Practices.Composite.Properties.Resources.resources
ResolveAssemblyReference.cache
TempPE
Release
Composite.Desktop.csproj.GenerateResource.Cache
Microsoft.Practices.Composite.dll
Microsoft.Practices.Composite.pdb
Microsoft.Practices.Composite.Properties.Resources.resources
TempPE
Properties.Resources.Designer.cs.dll
Properties
Regions
Composite.Presentation
OpenSource.snk
bin
Commands
Events
obj
Debug
Composite.Presentation.Desktop.csproj.GenerateResource.Cache
Microsoft.Practices.Composite.Presentation.dll
Microsoft.Practices.Composite.Presentation.pdb
Microsoft.Practices.Composite.Presentation.Properties.Resources.resources
ResolveAssemblyReference.cache
TempPE
Release
Composite.Presentation.Desktop.csproj.GenerateResource.Cache
Microsoft.Practices.Composite.Presentation.dll
Microsoft.Practices.Composite.Presentation.pdb
Microsoft.Practices.Composite.Presentation.Properties.Resources.resources
ResolveAssemblyReference.cache
TempPE
Properties.Resources.Designer.cs.dll
Properties
Regions
Behaviors
Silverlight
Composite
Composite.Silverlight.csproj.user
Migrated rules for Composite.Silverlight.ruleset
Bin
Events
Logging
Modularity
obj
Debug
Composite.Silverlight.csproj.GenerateResource.Cache
DesignTimeResolveAssemblyReferencesInput.cache
Microsoft.Practices.Composite.dll
Microsoft.Practices.Composite.pdb
Microsoft.Practices.Composite.Properties.Resources.resources
ResGen.read.1.tlog
ResGen.write.1.tlog
ResolveAssemblyReference.cache
TempPE
Properties.Resources.Designer.cs.dll
Release
Composite.Silverlight.csproj.GenerateResource.Cache
Microsoft.Practices.Composite.dll
Microsoft.Practices.Composite.pdb
Microsoft.Practices.Composite.Properties.Resources.resources
TempPE
Properties
Regions
Composite.Presentation
Composite.Presentation.Silverlight.csproj.user
Migrated rules for Composite.Presentation.Silverlight.ruleset
Bin
Commands
Events
obj
Debug
build.force
Composite.Presentation.Silverlight.csproj.GenerateResource.Cache
DesignTimeResolveAssemblyReferencesInput.cache
Microsoft.Practices.Composite.Presentation.dll
Microsoft.Practices.Composite.Presentation.pdb
Microsoft.Practices.Composite.Presentation.Properties.Resources.resources
ResGen.read.1.tlog
ResGen.write.1.tlog
ResolveAssemblyReference.cache
TempPE
Release
Composite.Presentation.Silverlight.csproj.GenerateResource.Cache
Microsoft.Practices.Composite.Presentation.dll
Microsoft.Practices.Composite.Presentation.pdb
Microsoft.Practices.Composite.Presentation.Properties.Resources.resources
ResolveAssemblyReference.cache
TempPE
Properties
Regions
Behaviors
LIB
Silverlight
ServiceLocation
Microsoft.Practices.ServiceLocation.dll


// ReSharper disable PossibleNullReferenceException
/*
This code was automatically generated by Daniel Vaughan's metadata generator.
Changes to this file may be lost if regeneration occurs.
http://danielvaughan.orpius.com
*/
using System.Windows;
using System;
using System.Linq;
using System.Linq.Expressions;

using DanielVaughan.Mtvt.ComponentModel;


namespace DanielVaughan.MtvtExample.XamlMetadata.Metadata
{
}


namespace DanielVaughan.MtvtExample.Metadata
{
    /// <summary>Metadata for class <see cref="DanielVaughan.MtvtExample.App"/></summary>
    public static class AppMetadata
    {
                /// <summary>Refers to method <see cref="DanielVaughan.MtvtExample.App.Application_Startup"/></summary>
        public const string Application_Startup = "Application_Startup";

        /// <summary>Refers to method <see cref="DanielVaughan.MtvtExample.App.Application_Exit"/></summary>
        public const string Application_Exit = "Application_Exit";

        /// <summary>Refers to method <see cref="DanielVaughan.MtvtExample.App.Application_UnhandledException"/></summary>
        public const string Application_UnhandledException = "Application_UnhandledException";

        /// <summary>Refers to method <see cref="DanielVaughan.MtvtExample.App.ReportErrorToDOM"/></summary>
        public const string ReportErrorToDOM = "ReportErrorToDOM";


    }

    /// <summary>Metadata for class <see cref="DanielVaughan.MtvtExample.MainPage"/></summary>
    public static class MainPageMetadata
    {
        
    }

    /// <summary>Metadata for class <see cref="DanielVaughan.MtvtExample.MainPageViewModel"/></summary>
    public static class MainPageViewModelMetadata
    {
                /// <summary>Refers to field <see cref="DanielVaughan.MtvtExample.MainPageViewModel.testCommand"/></summary>
        public const string testCommand = "testCommand";

        /// <summary>Refers to property <see cref="DanielVaughan.MtvtExample.MainPageViewModel.TestCommand"/></summary>
        public const string TestCommand = "TestCommand";

        /// <summary>Refers to field <see cref="DanielVaughan.MtvtExample.MainPageViewModel.message"/></summary>
        public const string message = "message";

        /// <summary>Refers to property <see cref="DanielVaughan.MtvtExample.MainPageViewModel.Message"/></summary>
        public const string Message = "Message";

        /// <summary>Refers to field <see cref="DanielVaughan.MtvtExample.MainPageViewModel.vmThreadId"/></summary>
        public const string vmThreadId = "vmThreadId";

        /// <summary>Refers to property <see cref="DanielVaughan.MtvtExample.MainPageViewModel.VMThreadId"/></summary>
        public const string VMThreadId = "VMThreadId";

        /// <summary>Refers to method <see cref="DanielVaughan.MtvtExample.MainPageViewModel.OnTestCommandCanExecute"/></summary>
        public const string OnTestCommandCanExecute = "OnTestCommandCanExecute";

        /// <summary>Refers to field <see cref="DanielVaughan.MtvtExample.MainPageViewModel.clickCount"/></summary>
        public const string clickCount = "clickCount";

        /// <summary>Refers to method <see cref="DanielVaughan.MtvtExample.MainPageViewModel.OnTestCommandExecute"/></summary>
        public const string OnTestCommandExecute = "OnTestCommandExecute";

        /// <summary>Refers to field <see cref="DanielVaughan.MtvtExample.MainPageViewModel.exampleCollection"/></summary>
        public const string exampleCollection = "exampleCollection";

        /// <summary>Refers to property <see cref="DanielVaughan.MtvtExample.MainPageViewModel.ExampleCollection"/></summary>
        public const string ExampleCollection = "ExampleCollection";

        /// <summary>Refers to field <see cref="DanielVaughan.MtvtExample.MainPageViewModel.testString"/></summary>
        public const string testString = "testString";

        /// <summary>Refers to property <see cref="DanielVaughan.MtvtExample.MainPageViewModel.TestString"/></summary>
        public const string TestString = "TestString";


        /// <summary>Refers to property <see cref="DanielVaughan.MtvtExample.MainPageViewModel.TestCommand"/></summary>
        public static PropertyPath TestCommandPath { get { return new PropertyPath("TestCommand"); } }

        /// <summary>Refers to property <see cref="DanielVaughan.MtvtExample.MainPageViewModel.Message"/></summary>
        public static PropertyPath MessagePath { get { return new PropertyPath("Message"); } }

        /// <summary>Refers to property <see cref="DanielVaughan.MtvtExample.MainPageViewModel.VMThreadId"/></summary>
        public static PropertyPath VMThreadIdPath { get { return new PropertyPath("VMThreadId"); } }

        /// <summary>Refers to property <see cref="DanielVaughan.MtvtExample.MainPageViewModel.ExampleCollection"/></summary>
        public static PropertyPath ExampleCollectionPath { get { return new PropertyPath("ExampleCollection"); } }

        /// <summary>Refers to property <see cref="DanielVaughan.MtvtExample.MainPageViewModel.TestString"/></summary>
        public static PropertyPath TestStringPath { get { return new PropertyPath("TestString"); } }

    }

}

namespace DanielVaughan.MtvtExample.Collections.Metadata
{
    /// <summary>Metadata for class <see cref="DanielVaughan.MtvtExample.Collections.SynchronizedObservableCollection<T>"/></summary>
    public static class SynchronizedObservableCollectionMetadata
    {
                /// <summary>Refers to field <see cref="DanielVaughan.MtvtExample.Collections.SynchronizedObservableCollection{}.busy"/></summary>
        public const string busy = "busy";

        /// <summary>Refers to field <see cref="DanielVaughan.MtvtExample.Collections.SynchronizedObservableCollection{}.collectionChangedManager"/></summary>
        public const string collectionChangedManager = "collectionChangedManager";

        /// <summary>Refers to field <see cref="DanielVaughan.MtvtExample.Collections.SynchronizedObservableCollection{}.uiContext"/></summary>
        public const string uiContext = "uiContext";

        /// <summary>Refers to field <see cref="DanielVaughan.MtvtExample.Collections.SynchronizedObservableCollection{}.propertyChanged"/></summary>
        public const string propertyChanged = "propertyChanged";

        /// <summary>Refers to method <see cref="DanielVaughan.MtvtExample.Collections.SynchronizedObservableCollection{T}.PreventReentrancy"/></summary>
        public const string PreventReentrancy = "PreventReentrancy";

        /// <summary>Refers to method <see cref="DanielVaughan.MtvtExample.Collections.SynchronizedObservableCollection{T}.ClearItems"/></summary>
        public const string ClearItems = "ClearItems";

        /// <summary>Refers to method <see cref="DanielVaughan.MtvtExample.Collections.SynchronizedObservableCollection{T}.CopyFrom"/></summary>
        public const string CopyFrom = "CopyFrom";

        /// <summary>Refers to method <see cref="DanielVaughan.MtvtExample.Collections.SynchronizedObservableCollection{T}.InsertItem"/></summary>
        public const string InsertItem = "InsertItem";

        /// <summary>Refers to method <see cref="DanielVaughan.MtvtExample.Collections.SynchronizedObservableCollection{T}.OnCollectionChanged"/></summary>
        public const string OnCollectionChanged = "OnCollectionChanged";

        /// <summary>Refers to method <see cref="DanielVaughan.MtvtExample.Collections.SynchronizedObservableCollection{T}.OnPropertyChanged"/></summary>
        public const string OnPropertyChanged = "OnPropertyChanged";

        /// <summary>Refers to method <see cref="DanielVaughan.MtvtExample.Collections.SynchronizedObservableCollection{T}.RemoveItem"/></summary>
        public const string RemoveItem = "RemoveItem";

        /// <summary>Refers to method <see cref="DanielVaughan.MtvtExample.Collections.SynchronizedObservableCollection{T}.SetItem"/></summary>
        public const string SetItem = "SetItem";


    }

}

namespace DanielVaughan.CommandModel.Metadata
{
    /// <summary>Metadata for class <see cref="DanielVaughan.CommandModel.ModelCommand<T>"/></summary>
    public static class ModelCommandMetadata
    {
                /// <summary>Refers to field <see cref="DanielVaughan.CommandModel.ModelCommand{}.executeMethod"/></summary>
        public const string executeMethod = "executeMethod";

        /// <summary>Refers to field <see cref="DanielVaughan.CommandModel.ModelCommand{}.canExecuteMethod"/></summary>
        public const string canExecuteMethod = "canExecuteMethod";

        /// <summary>Refers to field <see cref="DanielVaughan.CommandModel.ModelCommand{}.canExecuteChangedHandlers"/></summary>
        public const string canExecuteChangedHandlers = "canExecuteChangedHandlers";

        /// <summary>Refers to field <see cref="DanielVaughan.CommandModel.ModelCommand{}.active"/></summary>
        public const string active = "active";

        /// <summary>Refers to field <see cref="DanielVaughan.CommandModel.ModelCommand{}.canExecuteResultReceived"/></summary>
        public const string canExecuteResultReceived = "canExecuteResultReceived";

        /// <summary>Refers to field <see cref="DanielVaughan.CommandModel.ModelCommand{}.canExecuteResult"/></summary>
        public const string canExecuteResult = "canExecuteResult";

        /// <summary>Refers to method <see cref="DanielVaughan.CommandModel.ModelCommand{T}.CanExecute"/></summary>
        public const string CanExecute = "CanExecute";

        /// <summary>Refers to method <see cref="DanielVaughan.CommandModel.ModelCommand{T}.Execute"/></summary>
        public const string Execute = "Execute";

        /// <summary>Refers to method <see cref="DanielVaughan.CommandModel.ModelCommand{T}.CanExecute"/></summary>
        public const string ICommand_CanExecute = "ICommand.CanExecute";

        /// <summary>Refers to method <see cref="DanielVaughan.CommandModel.ModelCommand{T}.Execute"/></summary>
        public const string ICommand_Execute = "ICommand.Execute";

        /// <summary>Refers to method <see cref="DanielVaughan.CommandModel.ModelCommand{T}.OnCanExecuteChanged"/></summary>
        public const string OnCanExecuteChanged = "OnCanExecuteChanged";

        /// <summary>Refers to property <see cref="DanielVaughan.CommandModel.ModelCommand{T}.IsActive"/></summary>
        public const string IsActive = "IsActive";

        /// <summary>Refers to method <see cref="DanielVaughan.CommandModel.ModelCommand{T}.OnIsActiveChanged"/></summary>
        public const string OnIsActiveChanged = "OnIsActiveChanged";

        /// <summary>Refers to method <see cref="DanielVaughan.CommandModel.ModelCommand{T}.RaiseCanExecuteChanged"/></summary>
        public const string RaiseCanExecuteChanged = "RaiseCanExecuteChanged";


        /// <summary>Refers to property <see cref="DanielVaughan.CommandModel.ModelCommand{T}.IsActive"/></summary>
        public static PropertyPath IsActivePath { get { return new PropertyPath("IsActive"); } }

    }

}

namespace DanielVaughan.ComponentModel.Metadata
{
    /// <summary>Metadata for class <see cref="Mtvt.ComponentModel.NotifyPropertyChangeBase"/></summary>
    public static class NotifyPropertyChangeBaseMetadata
    {
                /// <summary>Refers to field <see cref="Mtvt.ComponentModel.NotifyPropertyChangeBase.notifier"/></summary>
        public const string notifier = "notifier";

        /// <summary>Refers to field <see cref="Mtvt.ComponentModel.NotifyPropertyChangeBase.notifierLock"/></summary>
        public const string notifierLock = "notifierLock";

        /// <summary>Refers to property <see cref="Mtvt.ComponentModel.NotifyPropertyChangeBase.Notifier"/></summary>
        public const string Notifier = "Notifier";

        /// <summary>Refers to method <see cref="Mtvt.ComponentModel.NotifyPropertyChangeBase.OnDeserializing"/></summary>
        public const string OnDeserializing = "OnDeserializing";

        /// <summary>Refers to method <see cref="Mtvt.ComponentModel.NotifyPropertyChangeBase.Assign{TProperty}"/></summary>
        public const string Assign = "Assign";

        /// <summary>Refers to method <see cref="Mtvt.ComponentModel.NotifyPropertyChangeBase.Initialize"/></summary>
        public const string Initialize = "Initialize";


        /// <summary>Refers to property <see cref="Mtvt.ComponentModel.NotifyPropertyChangeBase.Notifier"/></summary>
        public static PropertyPath NotifierPath { get { return new PropertyPath("Notifier"); } }

    }

}

namespace DanielVaughan.Mtvt.ComponentModel.Metadata
{
    /// <summary>Metadata for class <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier"/></summary>
    public static class PropertyChangeNotifierMetadata
    {
                /// <summary>Refers to field <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.ownerWeakReference"/></summary>
        public const string ownerWeakReference = "ownerWeakReference";

        /// <summary>Refers to field <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.changedEventManager"/></summary>
        public const string changedEventManager = "changedEventManager";

        /// <summary>Refers to field <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.changingEventManager"/></summary>
        public const string changingEventManager = "changingEventManager";

        /// <summary>Refers to property <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.Owner"/></summary>
        public const string Owner = "Owner";

        /// <summary>Refers to property <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.MaintainThreadAffinity"/></summary>
        public const string MaintainThreadAffinity = "MaintainThreadAffinity";

        /// <summary>Refers to method <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.OnPropertyChanged"/></summary>
        public const string OnPropertyChanged = "OnPropertyChanged";

        /// <summary>Refers to method <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.Assign{TProperty}"/></summary>
        public const string Assign = "Assign";

        /// <summary>Refers to method <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.AssignWithNotification{TProperty}"/></summary>
        public const string AssignWithNotification = "AssignWithNotification";

        /// <summary>Refers to field <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.expressions"/></summary>
        public const string expressions = "expressions";

        /// <summary>Refers to method <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.NotifyChanged{TProperty}"/></summary>
        public const string NotifyChanged = "NotifyChanged";

        /// <summary>Refers to method <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.GetMemberInfo{T, TResult}"/></summary>
        public const string GetMemberInfo = "GetMemberInfo";

        /// <summary>Refers to method <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.OnPropertyChanging"/></summary>
        public const string OnPropertyChanging = "OnPropertyChanging";

        /// <summary>Refers to field <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.expressionsLock"/></summary>
        public const string expressionsLock = "expressionsLock";

        /// <summary>Refers to method <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.GetPropertyName{T, TResult}"/></summary>
        public const string GetPropertyName = "GetPropertyName";

        /// <summary>Refers to field <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.cleanupOccured"/></summary>
        public const string cleanupOccured = "cleanupOccured";

        /// <summary>Refers to property <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.OwnerDisposed"/></summary>
        public const string OwnerDisposed = "OwnerDisposed";

        /// <summary>Refers to method <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.ValidatePropertyName"/></summary>
        public const string ValidatePropertyName = "ValidatePropertyName";

        /// <summary>Refers to field <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.useExtendedEventArgs"/></summary>
        public const string useExtendedEventArgs = "useExtendedEventArgs";

        /// <summary>Refers to field <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.propertyChangedEventArgsCache"/></summary>
        public const string propertyChangedEventArgsCache = "propertyChangedEventArgsCache";

        /// <summary>Refers to field <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.propertyChangingEventArgsCache"/></summary>
        public const string propertyChangingEventArgsCache = "propertyChangingEventArgsCache";

        /// <summary>Refers to field <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.propertyChangingEventArgsCacheLock"/></summary>
        public const string propertyChangingEventArgsCacheLock = "propertyChangingEventArgsCacheLock";

        /// <summary>Refers to method <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.RetrieveOrCreatePropertyChangingEventArgs"/></summary>
        public const string RetrieveOrCreatePropertyChangingEventArgs = "RetrieveOrCreatePropertyChangingEventArgs";

        /// <summary>Refers to field <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.propertyChangedEventArgsCacheLock"/></summary>
        public const string propertyChangedEventArgsCacheLock = "propertyChangedEventArgsCacheLock";

        /// <summary>Refers to method <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.RetrieveOrCreatePropertyChangedEventArgs"/></summary>
        public const string RetrieveOrCreatePropertyChangedEventArgs = "RetrieveOrCreatePropertyChangedEventArgs";

        /// <summary>Refers to method <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.RetrieveOrCreateEventArgs{TArgs}"/></summary>
        public const string RetrieveOrCreateEventArgs = "RetrieveOrCreateEventArgs";


        /// <summary>Refers to property <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.Owner"/></summary>
        public static PropertyPath OwnerPath { get { return new PropertyPath("Owner"); } }

        /// <summary>Refers to property <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.MaintainThreadAffinity"/></summary>
        public static PropertyPath MaintainThreadAffinityPath { get { return new PropertyPath("MaintainThreadAffinity"); } }

        /// <summary>Refers to property <see cref="DanielVaughan.Mtvt.ComponentModel.PropertyChangeNotifier.OwnerDisposed"/></summary>
        public static PropertyPath OwnerDisposedPath { get { return new PropertyPath("OwnerDisposed"); } }

    }

}

namespace DanielVaughan.Concurrency.Metadata
{
    /// <summary>Metadata for class <see cref="DanielVaughan.Concurrency.DelegateManager"/></summary>
    public static class DelegateManagerMetadata
    {
                /// <summary>Refers to field <see cref="DanielVaughan.Concurrency.DelegateManager.preserveThreadAffinity"/></summary>
        public const string preserveThreadAffinity = "preserveThreadAffinity";

        /// <summary>Refers to field <see cref="DanielVaughan.Concurrency.DelegateManager.invocationMode"/></summary>
        public const string invocationMode = "invocationMode";

        /// <summary>Refers to field <see cref="DanielVaughan.Concurrency.DelegateManager.contextProvider"/></summary>
        public const string contextProvider = "contextProvider";

        /// <summary>Refers to field <see cref="DanielVaughan.Concurrency.DelegateManager.useWeakReferences"/></summary>
        public const string useWeakReferences = "useWeakReferences";

        /// <summary>Refers to field <see cref="DanielVaughan.Concurrency.DelegateManager.delegateReferences"/></summary>
        public const string delegateReferences = "delegateReferences";

        /// <summary>Refers to field <see cref="DanielVaughan.Concurrency.DelegateManager.membersLock"/></summary>
        public const string membersLock = "membersLock";

        /// <summary>Refers to field <see cref="DanielVaughan.Concurrency.DelegateManager.synchronizationContexts"/></summary>
        public const string synchronizationContexts = "synchronizationContexts";

        /// <summary>Refers to method <see cref="DanielVaughan.Concurrency.DelegateManager.Add"/></summary>
        public const string Add = "Add";

        /// <summary>Refers to method <see cref="DanielVaughan.Concurrency.DelegateManager.Remove"/></summary>
        public const string Remove = "Remove";

        /// <summary>Refers to method <see cref="DanielVaughan.Concurrency.DelegateManager.InvokeDelegates"/></summary>
        public const string InvokeDelegates = "InvokeDelegates";


    }

    /// <summary>Metadata for class <see cref="DanielVaughan.Concurrency.DelegateReference"/></summary>
    public static class DelegateReferenceMetadata
    {
                /// <summary>Refers to field <see cref="DanielVaughan.Concurrency.DelegateReference.delegateToReference"/></summary>
        public const string delegateToReference = "delegateToReference";

        /// <summary>Refers to field <see cref="DanielVaughan.Concurrency.DelegateReference.delegateWeakReference"/></summary>
        public const string delegateWeakReference = "delegateWeakReference";

        /// <summary>Refers to field <see cref="DanielVaughan.Concurrency.DelegateReference.method"/></summary>
        public const string method = "method";

        /// <summary>Refers to field <see cref="DanielVaughan.Concurrency.DelegateReference.delegateType"/></summary>
        public const string delegateType = "delegateType";

        /// <summary>Refers to property <see cref="DanielVaughan.Concurrency.DelegateReference.Delegate"/></summary>
        public const string Delegate = "Delegate";

        /// <summary>Refers to method <see cref="DanielVaughan.Concurrency.DelegateReference.GetDelegate"/></summary>
        public const string GetDelegate = "GetDelegate";


        /// <summary>Refers to property <see cref="DanielVaughan.Concurrency.DelegateReference.Delegate"/></summary>
        public static PropertyPath DelegatePath { get { return new PropertyPath("Delegate"); } }

    }

    /// <summary>Metadata for class <see cref="DanielVaughan.Concurrency.SynchronizationContextProvider"/></summary>
    public static class SynchronizationContextProviderMetadata
    {
                /// <summary>Refers to property <see cref="DanielVaughan.Concurrency.SynchronizationContextProvider.ProvidedItem"/></summary>
        public const string ProvidedItem = "ProvidedItem";


        /// <summary>Refers to property <see cref="DanielVaughan.Concurrency.SynchronizationContextProvider.ProvidedItem"/></summary>
        public static PropertyPath ProvidedItemPath { get { return new PropertyPath("ProvidedItem"); } }

    }

}

namespace DanielVaughan.Metadata
{
    /// <summary>Metadata for class <see cref="DanielVaughan.ModelSynchronizationContext"/></summary>
    public static class ModelSynchronizationContextMetadata
    {
                /// <summary>Refers to field <see cref="DanielVaughan.ModelSynchronizationContext.stopRunning"/></summary>
        public const string stopRunning = "stopRunning";

        /// <summary>Refers to field <see cref="DanielVaughan.ModelSynchronizationContext.callbacks"/></summary>
        public const string callbacks = "callbacks";

        /// <summary>Refers to field <see cref="DanielVaughan.ModelSynchronizationContext.callbacksLock"/></summary>
        public const string callbacksLock = "callbacksLock";

        /// <summary>Refers to field <see cref="DanielVaughan.ModelSynchronizationContext.consumerThreadResetEvent"/></summary>
        public const string consumerThreadResetEvent = "consumerThreadResetEvent";

        /// <summary>Refers to method <see cref="DanielVaughan.ModelSynchronizationContext.Stop"/></summary>
        public const string Stop = "Stop";

        /// <summary>Metadata for class <see cref="DanielVaughan.ModelSynchronizationContext.CallbackReference"/></summary>
        public static class CallbackReferenceMetadata
        {
                        /// <summary>Refers to property <see cref="DanielVaughan.ModelSynchronizationContext.CallbackReference.Callback"/></summary>
            public const string Callback = "Callback";

            /// <summary>Refers to property <see cref="DanielVaughan.ModelSynchronizationContext.CallbackReference.State"/></summary>
            public const string State = "State";


            /// <summary>Refers to property <see cref="DanielVaughan.ModelSynchronizationContext.CallbackReference.Callback"/></summary>
            public static PropertyPath CallbackPath { get { return new PropertyPath("Callback"); } }

            /// <summary>Refers to property <see cref="DanielVaughan.ModelSynchronizationContext.CallbackReference.State"/></summary>
            public static PropertyPath StatePath { get { return new PropertyPath("State"); } }

        }

        /// <summary>Refers to property <see cref="DanielVaughan.ModelSynchronizationContext.Instance"/></summary>
        public const string Instance = "Instance";

        /// <summary>Metadata for class <see cref="DanielVaughan.ModelSynchronizationContext.Nested"/></summary>
        public static class NestedMetadata
        {
                        /// <summary>Refers to field <see cref="DanielVaughan.ModelSynchronizationContext.Nested.instance"/></summary>
            public const string instance = "instance";


        }

        /// <summary>Refers to field <see cref="DanielVaughan.ModelSynchronizationContext.threadOfCreation"/></summary>
        public const string threadOfCreation = "threadOfCreation";

        /// <summary>Refers to property <see cref="DanielVaughan.ModelSynchronizationContext.Thread"/></summary>
        public const string Thread = "Thread";

        /// <summary>Refers to method <see cref="DanielVaughan.ModelSynchronizationContext.InvokeWithoutBlocking"/></summary>
        public const string InvokeWithoutBlocking = "InvokeWithoutBlocking";

        /// <summary>Refers to method <see cref="DanielVaughan.ModelSynchronizationContext.InvokeAndBlockUntilCompletion"/></summary>
        public const string InvokeAndBlockUntilCompletion = "InvokeAndBlockUntilCompletion";

        /// <summary>Refers to method <see cref="DanielVaughan.ModelSynchronizationContext.RaiseExceptionIfUIThread"/></summary>
        public const string RaiseExceptionIfUIThread = "RaiseExceptionIfUIThread";

        /// <summary>Refers to method <see cref="DanielVaughan.ModelSynchronizationContext.ConsumeQueue"/></summary>
        public const string ConsumeQueue = "ConsumeQueue";

        /// <summary>Metadata for class <see cref="DanielVaughan.ModelSynchronizationContext.InvokeCompleteEventArgs"/></summary>
        public static class InvokeCompleteEventArgsMetadata
        {
                        /// <summary>Refers to property <see cref="DanielVaughan.ModelSynchronizationContext.InvokeCompleteEventArgs.CallbackReference"/></summary>
            public const string CallbackReference = "CallbackReference";


            /// <summary>Refers to property <see cref="DanielVaughan.ModelSynchronizationContext.InvokeCompleteEventArgs.CallbackReference"/></summary>
            public static PropertyPath CallbackReferencePath { get { return new PropertyPath("CallbackReference"); } }

        }

        /// <summary>Refers to method <see cref="DanielVaughan.ModelSynchronizationContext.OnInvokeComplete"/></summary>
        public const string OnInvokeComplete = "OnInvokeComplete";

        /// <summary>Refers to method <see cref="DanielVaughan.ModelSynchronizationContext.Initialize"/></summary>
        public const string Initialize = "Initialize";

        /// <summary>Refers to method <see cref="DanielVaughan.ModelSynchronizationContext.Initialize"/></summary>
        public const string ISynchronizationContext_Initialize = "ISynchronizationContext.Initialize";

        /// <summary>Refers to property <see cref="DanielVaughan.ModelSynchronizationContext.InvokeRequired"/></summary>
        public const string InvokeRequired = "InvokeRequired";


        /// <summary>Refers to property <see cref="DanielVaughan.ModelSynchronizationContext.Instance"/></summary>
        public static PropertyPath InstancePath { get { return new PropertyPath("Instance"); } }

        /// <summary>Refers to property <see cref="DanielVaughan.ModelSynchronizationContext.Thread"/></summary>
        public static PropertyPath ThreadPath { get { return new PropertyPath("Thread"); } }

        /// <summary>Refers to property <see cref="DanielVaughan.ModelSynchronizationContext.InvokeRequired"/></summary>
        public static PropertyPath InvokeRequiredPath { get { return new PropertyPath("InvokeRequired"); } }

    }

    /// <summary>Metadata for class <see cref="DanielVaughan.ViewModelBase"/></summary>
    public static class ViewModelBaseMetadata
    {
        
    }

}

// ReSharper restore PossibleNullReferenceException

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The BSD License

Share

About the Author

Daniel Vaughan
President Outcoder
Switzerland Switzerland
Daniel Vaughan is a Microsoft MVP and co-founder of Outcoder, a Swiss software and consulting company dedicated to creating best-of-breed user experiences and leading-edge back-end solutions, using the Microsoft stack of technologies--in particular WPF, WinRT, Windows Phone, and also Xamarin.Forms.

Daniel is the author of Windows Phone 8 Unleashed and Windows Phone 7.5 Unleashed, both published by SAMS.

Daniel is the developer behind several acclaimed Windows Phone apps including Surfy, Intellicam, and Splashbox; and is the creator of a number of popular open-source projects including Calcium SDK, and Clog.

Would you like Daniel to bring value to your organisation? Please contact

Daniel's Blog | MVP profile | Follow on Twitter

Windows Phone Experts

You may also be interested in...

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.150731.1 | Last Updated 1 May 2010
Article Copyright 2010 by Daniel Vaughan
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid