Click here to Skip to main content
Click here to Skip to main content
Add your own
alternative version

Catel - Part 4 of n: Unit testing with Catel

, 28 Jan 2011 CPOL
This article explains how to write unit tests for MVVM using Catel.
Catel-04_01-unittesting.zip
src
Catel.Articles.04 - Unit testing
Models
Properties
Settings.settings
Resources
Images
add.png
delete.png
edit.png
group.png
UI
Data
Converters
ViewModels
Windows
Catel.Articles.04 - Unit testing.Test
Models
Properties
UI
ViewModels
Catel.Articles.Base
Data
Attributes
Properties
Settings.settings
Resources
Images
CatenaLogic.png
Preview.png
Run.png
ShowCode.png
UI
Controls
Helpers
ViewModels
Windows
Catel.Core
Attributes
ClassDiagrams
DataObjectBase.cd
SavableDataObjectBase.cd
Collections
Helpers
ComponentModel
Data
Attributes
Exceptions
Interfaces
Diagnostics
Extensions
Helpers
Exceptions
Helpers
IO
Exceptions
IoC
LLBLGen
Log4net
Appender
Extensions
Helpers
MVVM
Commands
Interfaces
Exceptions
Services
EventArgs
Exceptions
Interfaces
ViewModels
Attributes
Interfaces
Properties
Reflection
Exceptions
Extensions
Helpers
Runtime
Serialization
Attributes
Helpers
Security
Cryptography
Helpers
Catel.Examples.Models
Properties
Catel.Examples.PersonApplication
Properties
Settings.settings
Resources
Images
add.png
delete.png
edit.png
group.png
UI
Data
Converters
ViewModels
Windows
Catel.Examples.Silverlight
Properties
Resources
Images
add.png
delete.png
edit.png
group.png
UI
Data
Converters
Pages
ViewModels
Windows
Catel.Examples.Silverlight.Web
Catel.Examples.Silverlight.Web.csproj.user
ClientBin
Properties
Catel.FxCop
Catel.Silverlight
Diagnostics
log4net
Core
MVVM
Commands
Services
ViewModels
Properties
Catel.Core
Catel.Windows
Reflection
Themes
Generic
Assets
Old
Windows
Controls
Data
Converters
Helpers
Helpers
Catel.Silverlight.Test
Properties
Catel.Silverlight.Test.Web
Catel.Silverlight.Test.Web.csproj.user
ClientBin
Properties
Catel.snk
Catel.Templates.WpfApplication
Properties
Settings.settings
UI
Controls
ViewModels
Windows
Catel.Templates.WpfItemTemplates
Properties
UI
Controls
ViewModels
Windows
Catel.Test
Collections
Convert
Data
Helpers
IO
MVVM
UI
ViewModels
Properties
Reflection
Runtime
Serialization
Security
Cryptography
Test References
Catel.Windows.accessor
Windows
Data
Converters
Catel.vsmdi
Catel.Windows
ClassDiagrams
ViewModelBase.cd
Collections
Extensions
Helpers
MVVM
Commands
Services
Test
UI
ViewModels
Properties
Settings.settings
Resources
Images
Add.png
ClearOutput.png
Edit.png
Error.png
Loading.gif
Preview.png
Remove.png
Save.png
TipOfTheDay.png
Warning.png
Themes
Aero
ExpressionDark
Assets
Generic
Assets
Controls
Jetpack
Assets
background.png
Old
SunnyOrange
Assets
Windows
Controls
Extensions
LinkLabel
StackGrid
Data
Converters
Helpers
Documents
Extensions
Extensions
Helpers
Input
Markup
Media
Effects
EmptyEffect
EmptyEffect.fx
EmptyEffect.ps
EmptyEffect.fx
GrayscaleEffect
GrayscaleEffect.fx
GrayscaleEffect.ps
Extensions
Imaging
Extensions
Windows
DataWindow
TipOfTheDay
Local.testsettings
Settings.StyleCop
TraceAndTestImpact.testsettings
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <data name="AttachThreadInputFailed" xml:space="preserve">
    <value>Failed to attach to input thread (Win32 code '{0}')</value>
    <comment>{0} = win32 error code</comment>
  </data>
  <data name="CastFailed" xml:space="preserve">
    <value>Failed to cast '{0}' to an object of type '{1}'</value>
    <comment>{0} = Value
{1} = Destination type</comment>
  </data>
  <data name="CloseApplicationFailed" xml:space="preserve">
    <value>Failed to close application '{0}'</value>
    <comment>{0} = Application name</comment>
  </data>
  <data name="ConverterParameterIsNullSoDefaultIsUsed" xml:space="preserve">
    <value>Converter parameter cannot be null, default value '{0}' will be used</value>
    <comment>{0} = default value</comment>
  </data>
  <data name="DeserializationFailed" xml:space="preserve">
    <value>Failed to deserialize object '{0}'</value>
    <comment>{0} = object name</comment>
  </data>
  <data name="DetachThreadInputFailed" xml:space="preserve">
    <value>Failed to detach from input thread</value>
  </data>
  <data name="DisconnectEnumerableFailed" xml:space="preserve">
    <value>Failed to disconnect all items inside an IEnumerable</value>
  </data>
  <data name="EnableValidationOnBindingFailed" xml:space="preserve">
    <value>Failed to enable the validation for the binding on '{0}'</value>
    <comment>{0} = Property name</comment>
  </data>
  <data name="FocusElementFailed" xml:space="preserve">
    <value>Failed to focus element '{0}'</value>
    <comment>{0} = Element name</comment>
  </data>
  <data name="FocusNextElementFailed" xml:space="preserve">
    <value>Failed to focus next focusable element</value>
  </data>
  <data name="FocusParentFailed" xml:space="preserve">
    <value>Failed to focus parent '{0}'</value>
    <comment>{0} = Parent name</comment>
  </data>
  <data name="LoadTextFailed" xml:space="preserve">
    <value>Failed to load text</value>
  </data>
  <data name="MethodInvokeFailed" xml:space="preserve">
    <value>Failed to invoke method '{0}' on object '{1}'</value>
    <comment>{0} = Method name
{1} = object name</comment>
  </data>
  <data name="ParseFailed" xml:space="preserve">
    <value>Failed to parse '{0}' as '{1}'</value>
    <comment>{0} = Value
{1} = Destination type</comment>
  </data>
  <data name="PathConversionFailed" xml:space="preserve">
    <value>Failed to convert path '{0}' to a folder name</value>
    <comment>{0} = Path</comment>
  </data>
  <data name="ProcessValidationCannotHandleNullValues" xml:space="preserve">
    <value>Null-values are not allowed when not using ValidationEventAction.ClearAll</value>
  </data>
  <data name="RetrieveGrabberInformationFailed" xml:space="preserve">
    <value>Failed to retrieve the grabber information. Tried {0} times</value>
  </data>
  <data name="SubscribeEventFailed" xml:space="preserve">
    <value>Failed to subscribe to event '{0}'</value>
    <comment>{0} = Event name</comment>
  </data>
  <data name="FailedToCreateStyleForwarder" xml:space="preserve">
    <value>Failed to create style forwarder for '{0}'</value>
    <comment>{0} = object name</comment>
  </data>
  <data name="DefaultHandlerForHttpNotRegistered" xml:space="preserve">
    <value>Default handler for http-scheme not valid in Windows</value>
  </data>
  <data name="FailedToStartProcess" xml:space="preserve">
    <value>Failed to start process to open '{0}'</value>
    <comment>{0} = process name</comment>
  </data>
  <data name="FailedToInvokeOnPropertyChanged" xml:space="preserve">
    <value>Failed to invoke OnPropertyChanged</value>
  </data>
  <data name="FailedToDetectViewModelServicesAutomatically" xml:space="preserve">
    <value>Failed to detect the view model services automatically</value>
  </data>
  <data name="ViewModelAutomaticallyConstructedByDataContextChange" xml:space="preserve">
    <value>View model '{0}' is automatically constructed by DataContext change</value>
    <comment>{0} = view model type</comment>
  </data>
  <data name="ViewModelNotAutomaticallyConstructedByDataContextChange" xml:space="preserve">
    <value>Cannot create view model '{0}' automatically by the DataContext change</value>
    <comment>{0} = view model type</comment>
  </data>
  <data name="CannotConstructViewModelNextTryOnDataContextChange" xml:space="preserve">
    <value>Cannot automatically construct view model '{0}', next try will be on the DataContext change</value>
    <comment>{0} = view model type</comment>
  </data>
  <data name="ViewModelNotAutomaticallyConstructedByDataContextChangeBecauseThereIsNoConstructor" xml:space="preserve">
    <value>Cannot create view model '{0}' automatically by the DataContext change because there is no constructor with type '{1}'</value>
    <comment>{0} = view model type 
{1} = data context type name</comment>
  </data>
  <data name="ShowingPleaseWaitWindow" xml:space="preserve">
    <value>Showing please wait window</value>
  </data>
  <data name="HidingPleaseWaitWindow" xml:space="preserve">
    <value>Hiding please wait window</value>
  </data>
  <data name="CannotSetOwnerWindowToItself" xml:space="preserve">
    <value>Cannot set owner window to itself, no owner window set</value>
  </data>
  <data name="ClearedAllWarningsAndErrorsOfObject" xml:space="preserve">
    <value>Cleared all warnings and errors caused by '{0}' since this is caused by a DataContext issue in the .NET Framework</value>
    <comment>
			{0} = object.ToString of the object that is cleared
		</comment>
  </data>
  <data name="ObjectIsInIgnoreListThusMessagesWillNotBeHandled" xml:space="preserve">
    <value>object '{0}' is in the ignore list, thus messages will not be handled</value>
    <comment>
			{0} = object.ToString of the object being ignored
		</comment>
  </data>
  <data name="DependencyPropertyFieldNotFound" xml:space="preserve">
    <value>DependencyProperty field '{0}' not found on '{1}', not using the right naming convention?</value>
    <comment>{0} = property name
{1} = object type</comment>
  </data>
  <data name="FailedToGetValueAsDependencyProperty" xml:space="preserve">
    <value>Failed to get the field value of '{0}' on '{1}' as DependencyProperty object, probably the wrong type (not DependencyProperty) or value is actually null</value>
    <comment>{0} = property name
{1} = object type</comment>
  </data>
  <data name="SubscribedToRealDataContextViaINotifyPropertyChanged" xml:space="preserve">
    <value>Subscribed to real DataContext via INotifyPropertyChanged</value>
  </data>
  <data name="SubscribedToRealDataContextViaDependencyProperty" xml:space="preserve">
    <value>Subscribed to real DataContext via dependency property '{0}'</value>
    <comment>{0} = property name</comment>
  </data>
  <data name="UnsubscribedFromRealDataContextViaDependencyProperty" xml:space="preserve">
    <value>Unsubscribed from real DataContext via dependency property '{0}'</value>
    <comment>{0} = property name</comment>
  </data>
  <data name="UnsubscribedFromRealDataContextViaINotifyPropertyChanged" xml:space="preserve">
    <value>Unsubscribed from real DataContext via INotifyPropertyChanged</value>
  </data>
  <data name="EnsureApplicationResourcesFailed" xml:space="preserve">
    <value>Failed to ensure application resources</value>
  </data>
  <data name="ParentViewModelIsCanceledThusCancelingViewModelToo" xml:space="preserve">
    <value>Parent view model '{0}' is canceled, cancelling view model '{1}' as well</value>
    <comment>{0} = type of the parent view model
{1} = type of the view model</comment>
  </data>
  <data name="ParentViewModelIsSavedThusSavingViewModel" xml:space="preserve">
    <value>Parent view model '{0}' is saved, saving view model '{1}' as well</value>
    <comment>{0} = parent view model type
{1} = view model type</comment>
  </data>
  <data name="UnsubscribedFromParentViewModel" xml:space="preserve">
    <value>Unsubscribed from parent view model</value>
  </data>
  <data name="SubscribedToParentViewModel" xml:space="preserve">
    <value>Subscribed to parent view model '{0}'</value>
    <comment>
			{0} = parent view model type
		</comment>
  </data>
  <data name="UpdatingDataContextViaDispatcher" xml:space="preserve">
    <value>Updating DataContext via dispatcher because control is already loaded, but no DataContext was provided initially</value>
  </data>
  <data name="UpdatedDataContextViaDispatcher" xml:space="preserve">
    <value>Updated DataContext to use the view model via dispatcher</value>
  </data>
  <data name="InvalidPixelShaderEncountered" xml:space="preserve">
    <value>Invalid PixelShader Encountered. Occurs when the render thread cannot process the pixel shader.</value>
  </data>
  <data name="NoClosableParentFoundThusUsingUnloadedEvent" xml:space="preserve">
    <value>No closable parent found, using the Unloaded event of the control itself to clean up, which is buggy</value>
  </data>
  <data name="ClosableParentFoundThusUsingClosedEvent" xml:space="preserve">
    <value>Found closable parent ({0}), using the Closed event instead of the Unloaded event of the control itself to clean up</value>
    <comment>{0} = closable parent type</comment>
  </data>
  <data name="FoundParentViewModelContainer" xml:space="preserve">
    <value>Found the parent view model container '{0}' for '{1}'</value>
    <comment>{0} = parent view model container type
{1} = control type</comment>
  </data>
  <data name="NotFoundParentViewModelContainer" xml:space="preserve">
    <value>Couldn't find parent view model container</value>
  </data>
  <data name="ForcingSoftwareRenderingForPixelShader" xml:space="preserve">
    <value>Forcing software rendering for pixel shader '{0}'</value>
    <comment>
			{0} = pixel shader type
		</comment>
  </data>
  <data name="ForcingHardwareRenderingForPixelShader" xml:space="preserve">
    <value>Forcing hardware rendering for pixel shader '{0}'</value>
    <comment>
			{0} = pixel shader type
		</comment>
  </data>
  <data name="PixelShadersAreDisabled" xml:space="preserve">
    <value>Pixel shaders are disabled, using default one that is safe</value>
  </data>
  <data name="DisabledHardwareAcceleration" xml:space="preserve">
    <value>Disabled hardware acceleration for '{0}'</value>
    <comment>{0} = target type</comment>
  </data>
  <data name="HardwareAccelerationCannotBeDisabledYet" xml:space="preserve">
    <value>Hardware acceleration cannot yet be turned off for visual '{0}', but will be as soon as the visual is loaded</value>
    <comment>{0} = visual type</comment>
  </data>
  <data name="FailedToDisableHardwareAcceleration" xml:space="preserve">
    <value>Failed to disabled hardware acceleration because visual '{0}' does not yet have a handle</value>
    <comment>{0} = visual type</comment>
  </data>
  <data name="CompletingStyleInfo" xml:space="preserve">
    <value>Completing the style info for '{0}' with the additional info from the default style definition</value>
    <comment>{0} = target type</comment>
  </data>
  <data name="CannotFindStyleDefinitionCreatingForwarder" xml:space="preserve">
    <value>Couln't find style definition for '{0}', creating style forwarder</value>
    <comment>{0} = target type</comment>
  </data>
  <data name="FailedToCompleteStyle" xml:space="preserve">
    <value>Failed to complete the style for '{0}'</value>
    <comment>{0} = target type</comment>
  </data>
  <data name="FailedToAddDefaultStyleToDefaultStylesList" xml:space="preserve">
    <value>Failed to add a default style ('{0}') definition to the list of styles</value>
    <comment>{0} = style key</comment>
  </data>
  <data name="FailedToFindFrameworkElementWhereStyleIsBasedOn" xml:space="preserve">
    <value>Failed to find the framework element where style '{0}' is based on</value>
    <comment>{0} = style key</comment>
  </data>
  <data name="StyleDoesNotHaveBasedOnAttributeDefined" xml:space="preserve">
    <value>Style '{0}' does not have the 'BasedOn' attribute defined</value>
    <comment>{0} = style key</comment>
  </data>
  <data name="CouldNotSplitStyleToDetermineTypeOfBasedOnAttribute" xml:space="preserve">
    <value>Could not split '{0}' for style '{1}' to determine the type of the 'BasedOn' attribute</value>
    <comment>{0} = based on attribute value
{1} = style key</comment>
  </data>
  <data name="StyleIsBasedOnType" xml:space="preserve">
    <value>Style '{0}' is based on type '{1}'</value>
    <comment>{0} = style key
{1} = type</comment>
  </data>
  <data name="TypeIsNotAFrameworkElementType" xml:space="preserve">
    <value>Type '{0}' is not a FrameworkElement type, thus cannot be used</value>
    <comment>{0} = type name</comment>
  </data>
  <data name="CouldNotResolveType" xml:space="preserve">
    <value>Could not resolve type '{0}'</value>
    <comment>
			{0} = qualified type name
		</comment>
  </data>
  <data name="SuccessfullyResolvedType" xml:space="preserve">
    <value>Successfully resolved type '{0}' as '{1}'</value>
    <comment>{0} = qualified type name
{1} = resolved type name</comment>
  </data>
  <data name="CannotTransferValueFromControlToViewModelBecauseViewModelIsNull" xml:space="preserve">
    <value>Cannot transfer value from Control to ViewModel because ViewModel is null</value>
  </data>
  <data name="CannotTransferValueFromViewModelToControlBecauseViewModelIsNull" xml:space="preserve">
    <value>Cannot transfer value from ViewModel to Control because ViewModel is null</value>
  </data>
  <data name="TransferringValue" xml:space="preserve">
    <value>Transferring value of {0}.{1} to {2}.{3}</value>
    <comment>{0} = source type name
{1} = source property name
{2} = target type name
{3} = target property name</comment>
  </data>
  <data name="TransferredValue" xml:space="preserve">
    <value>Transferred value successfully</value>
  </data>
  <data name="CreatedControlToViewModelMapping" xml:space="preserve">
    <value>Created a '{0}' control to viewmodel mapping from '{1}' to '{2}'</value>
    <comment>{0} = mapping type
{1} = control property name
{2} = view model property name</comment>
  </data>
  <data name="PropertyDecoratedWithControlToViewModelAttribute" xml:space="preserve">
    <value>Property '{0}' is decorated with the ControlToViewModelAttribute, creating a mapping</value>
    <comment>{0} = property name</comment>
  </data>
  <data name="IgnoringNextPropertyChangedEventForViewModelProperty" xml:space="preserve">
    <value>Ignore next property changed event for ViewModel.'{0}'</value>
    <comment>{0} = property name</comment>
  </data>
  <data name="StoppedIgnoringNextPropertyChangedEventForViewModelProperty" xml:space="preserve">
    <value>No longer ignoring next property changed event for ViewModel.'{0}'</value>
    <comment>{0} = property name</comment>
  </data>
  <data name="IgnoringNextPropertyChangedEventForControlProperty" xml:space="preserve">
    <value>Ignore next property changed event for Control.'{0}'</value>
    <comment>{0} = property name</comment>
  </data>
  <data name="StoppedIgnoringNextPropertyChangedEventForControlProperty" xml:space="preserve">
    <value>No longer ignoring next property changed event for Control.'{0}'</value>
    <comment>{0} = property name</comment>
  </data>
  <data name="IgnoredPropertyChangedEventForControl" xml:space="preserve">
    <value>Ignored property changed event for Control.'{0}'</value>
    <comment>{0} = property name</comment>
  </data>
  <data name="IgnoredPropertyChangedEventForViewModel" xml:space="preserve">
    <value>Ignored property changed event for ViewModel.'{0}'</value>
    <comment>{0} = property name</comment>
  </data>
  <data name="RegisteredViewModelInUIVisualizerService" xml:space="preserve">
    <value>Registered view model '{0}' in combination with '{1}' in the UIVisualizerService</value>
    <comment>{0} = view model type
{1} = window type</comment>
  </data>
  <data name="UnregisteredViewModelInUIVisualizerService" xml:space="preserve">
    <value>Unregistered view model '{0}' in UIVisualizerService</value>
    <comment>
			{0} = view model type
		</comment>
  </data>
  <data name="RegisteringAllDataWindowImplementationsAutomatically" xml:space="preserve">
    <value>Registering all DataWindow&lt;TViewModel&gt; implementations automatically</value>
  </data>
  <data name="RegisteredAllDataWindowImplementationsAutomatically" xml:space="preserve">
    <value>Registered all DataWindow&lt;TViewModel&gt; implementations automatically</value>
  </data>
  <data name="FailedToGetTypesOfAssembly" xml:space="preserve">
    <value>Failed to get the types of assembly '{0}'</value>
    <comment>{0} = assembly name</comment>
  </data>
  <data name="CouldNotFindGenericDefinition" xml:space="preserve">
    <value>Couldn't find the generic definition for '{0}'</value>
    <comment>{0} = type name</comment>
  </data>
  <data name="NoConstructorWithViewModelInjectionFound" xml:space="preserve">
    <value>No constructor with view model (of type '{0}') injection found, trying default constructor</value>
    <comment>
			{0} = view model type
		</comment>
  </data>
  <data name="NoInjectionOrDefaultConstructorFoundForWindow" xml:space="preserve">
    <value>Window '{0}' does not have an injection or default constructor, does cannot be constructed</value>
    <comment>{0} = window type</comment>
  </data>
  <data name="RestoringDataContext" xml:space="preserve">
    <value>Restoring data context binding to '{0}'</value>
    <comment>{0} = binding path</comment>
  </data>
  <data name="FailedToRegisterType" xml:space="preserve">
    <value>Failed to register type '{0}'</value>
    <comment>{0} = type name</comment>
  </data>
  <data name="SkippingSearchForInfoBarMessageControl" xml:space="preserve">
    <value>Skipping the search for an instance of the InfoBarMessageControl</value>
  </data>
  <data name="OnLoadedInObject" xml:space="preserve">
    <value>OnLoaded in '{0}'</value>
    <comment>
			{0} = object type name
		</comment>
  </data>
  <data name="OnUnloadedInObject" xml:space="preserve">
    <value>OnUnloaded in '{0}'</value>
    <comment>
			{0} = object type name
		</comment>
  </data>
  <data name="SearchingForInfoBarMessageControl" xml:space="preserve">
    <value>Searching for an instance of the InfoBarMessageControl</value>
  </data>
  <data name="NoInfoBarMessageControlIsFoundConsiderUsingSkipSearchingForInfoBarMessageControlProperty" xml:space="preserve">
    <value>No InfoBarMessageControl is found in the visual tree of '{0}', consider using the SkipSearchingForInfoBarMessageControl property to improve performance</value>
    <comment>{0} = control type name</comment>
  </data>
  <data name="AutomaticallyRegisteredViewModel" xml:space="preserve">
    <value>Registered view model '{0}' with '{1}'</value>
    <comment>{0} = view model type
{1} = window  type</comment>
  </data>
  <data name="InitializingViewModelContainer" xml:space="preserve">
    <value>Initializing view model container to manage ControlToViewModel mappings</value>
  </data>
  <data name="InitializedViewModelContainer" xml:space="preserve">
    <value>Initialized view model container to manage ControlToViewModel mappings</value>
  </data>
  <data name="UninitializingViewModelContainer" xml:space="preserve">
    <value>Uninitializing view model container to manage ControlToViewModel mappings</value>
  </data>
  <data name="UninitializedViewModelContainer" xml:space="preserve">
    <value>Uninitialized view model container to manage ControlToViewModel mappings</value>
  </data>
  <data name="UninitializingViewModel" xml:space="preserve">
    <value>Uninitializing view model '{0}'</value>
    <comment>
			{0} = view model type
		</comment>
  </data>
  <data name="UninitializedViewModel" xml:space="preserve">
    <value>Uninitialized view model '{0}'</value>
    <comment>
			{0} = view model type
		</comment>
  </data>
  <data name="FailedToTransferValueForControlToViewModelMapping" xml:space="preserve">
    <value>Failed to transfer value from control property '{0}' to the view model property '{1}' for the ControlToViewModelMapping</value>
    <comment>{0} = control property name
{1} = view model property name</comment>
  </data>
	<data name="FailedToConfigureIoCContainer">
		<value xml:space="preserve">Failed to configure IoC container</value>
	</data>
	<data name="ConfiguringIoCContainerViaConfigurationFile">
		<value xml:space="preserve">Configuring IoC container via configuration file</value>
	</data>
	<data name="ConfiguredIoCContainerViaConfigurationFile">
		<value xml:space="preserve">Configured IoC container via configuration file</value>
	</data>
	<data name="RegisteringDefaultServiceImplementationsForIoCContainer">
		<value xml:space="preserve">Registering default service implementations for IoC container</value>
	</data>
	<data name="RegisteredDefaultServiceImplementationsForIoCContainer">
		<value xml:space="preserve">Registered default service implementations for IoC container</value>
	</data>
</root>

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 Code Project Open License (CPOL)

Share

About the Author

Geert van Horrik
Software Developer CatenaLogic
Netherlands Netherlands
I am Geert van Horrik, and I have studied Computer Science in the Netherlands.
 
I love to write software using .NET (especially the combination of WPF and C#). I am also the lead developer of Catel, an open-source application development framework for WPF, Silverlight, WP7 and WinRT with the focus on MVVM.
 
I have my own company since January 1st 2007, called CatenaLogic. This company develops commercial and non-commercial software.
 
To download (or buy) applications I have written, visit my website: http://www.catenalogic.com
Follow on   Twitter

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.141216.1 | Last Updated 28 Jan 2011
Article Copyright 2011 by Geert van Horrik
Everything else Copyright © CodeProject, 1999-2014
Layout: fixed | fluid