Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>SimpleIoc crib sheet:</p> <p>1) You register all your interfaces and objects in the ViewModelLocator</p> <pre><code>class ViewModelLocator { static ViewModelLocator() { ServiceLocator.SetLocatorProvider(() =&gt; SimpleIoc.Default); if (ViewModelBase.IsInDesignModeStatic) { SimpleIoc.Default.Register&lt;IDataService, Design.DesignDataService&gt;(); } else { SimpleIoc.Default.Register&lt;IDataService, DataService&gt;(); } SimpleIoc.Default.Register&lt;MainViewModel&gt;(); SimpleIoc.Default.Register&lt;SecondViewModel&gt;(); } public MainViewModel Main { get { return ServiceLocator.Current.GetInstance&lt;MainViewModel&gt;(); } } } </code></pre> <p>2) Every object is a singleton by default. To resolve an object so that it's not a singleton you need to pass a unique value to the GetInstance call:</p> <pre><code>SimpleIoc.Default.GetInstance&lt;MainViewModel&gt;(Guid.NewGuid().ToString()); </code></pre> <p>3) To register a class against an interface:</p> <pre><code>SimpleIoc.Default.Register&lt;IDataService, Design.DesignDataService&gt;(); </code></pre> <p>4) To register a concrete object against an interface:</p> <pre><code>SimpleIoc.Default.Register&lt;IDataService&gt;(myObject); </code></pre> <p>5) To register a concrete type:</p> <pre><code>SimpleIoc.Default.Register&lt;MainViewModel&gt;(); </code></pre> <p>6) To resolve an object from an interface:</p> <pre><code>SimpleIoc.Default.GetInstance&lt;IDataService&gt;(); </code></pre> <p>7) To resolve an object directly (does buildup and dependency resolution):</p> <pre><code>SimpleIoc.Default.GetInstance&lt;MainViewModel&gt;(); </code></pre> <p>8) MVVM makes doing design-time data really easy:</p> <pre><code>if (ViewModelBase.IsInDesignModeStatic) { SimpleIoc.Default.Register&lt;IDataService, Design.DesignDataService&gt;(); } else { SimpleIoc.Default.Register&lt;IDataService, DataService&gt;(); } </code></pre> <p>If you're in design-time mode it will automatically register your design-time services, making it really easy to have data in your viewmodels and views when working in the VS designer.</p> <p>Hope this helps.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload