• MVVMLight leaning note


    Learning Note For MvvmLight

    MvvmLight quitstart

    refer link1 : MVVMLight HelloWorld


    mc:Ignorable usage.

    we have a lot of places using mc:Ignorable in our xaml. it is used to Comment code in xaml.how to use it in our xaml, we can refer this topic.


    SimpleIOC

    ViewModelLocator.cs Analysis

    1. when we use mvvmlight template, we will have a file called ViewModelLocator.cs General Structor here:

      using GalaSoft.MvvmLight;
      using GalaSoft.MvvmLight.Ioc;
      using Microsoft.Practices.ServiceLocation;

      namespace mvvmtemplate.ViewModel
      {
      ///


      /// This class contains static references to all the view models in the
      /// application and provides an entry point for the bindings.
      ///

      public class ViewModelLocator
      {
      ///
      /// Initializes a new instance of the ViewModelLocator class.
      ///

      public ViewModelLocator()
      {
      ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);

               ////if (ViewModelBase.IsInDesignModeStatic)
               ////{
               ////    // Create design time view services and models
               ////    SimpleIoc.Default.Register<IDataService, DesignDataService>();
               ////}
               ////else
               ////{
               ////    // Create run time view services and models
               ////    SimpleIoc.Default.Register<IDataService, DataService>();
               ////}
      
               SimpleIoc.Default.Register<MainViewModel>();
           }
      
           public MainViewModel Main
           {
               get
               {
                   return ServiceLocator.Current.GetInstance<MainViewModel>();
               }
           }
           
           public static void Cleanup()
           {
               // TODO Clear the ViewModels
           }
       }
      

      }

    three key point: ServiceLocator.SetLocatorProvider(()=>SimpleIoc.Default) SimpleIoc.Default.Register() ServiceLocator.Current.GetInstance()

    1. for usage of SimpleIoc.Default.Register<>(), we can see the dll of the MvvmLight, a lot of overload functions about this. It is used to register the class to the SimpleIoc. Note: T class should only have one Contructor function, otherwise, it will report a error.

    2. ServiceLocator.Current.GetInstance(), it is used to get a instance of the Class T. it is used to for singleInstance mode, other overload functions definited in dll.


    Messager

    it is used to send specified message between MVVM. Simple usage.

    1. Register a specified message to an object.
      Sample code:

      Messenger.Default.Register(object, Action);

    Summary:

    Registers a recipient for a type of message TMessage. The action parameter will be executed when a corresponding message is sent.
    Registering a recipient does not create a hard reference to it, so if this recipient is deleted, no memory leak is caused.

    1. Send a specified message.
      Sample code:

      public virtual void Send(TMessage message){}

    Summary:
    Sends a message to registered recipients. The message will reach all recipients that registered for this message type using one of the Register methods.

    Type Parameters:
    TMessage: The type of message that will be sent.

    Parameters:
    message: The message to send to registered recipients.

    How to use:

    Messenger.Default.Send(new TMessage(s));
  • 相关阅读:
    算法——戳气球(最大乘积和)
    算法——股票买卖问题
    算法——最长上升子序列(DP和二分)
    runtime debug sample
    兼顾站点启动与数据安全性
    SQLServer出发器中使用二进制字段
    OutputCache a2过期时间的设置
    wget 163.com
    SQLServer性能优化
    分页控件设计思路
  • 原文地址:https://www.cnblogs.com/kongshu-612/p/5469733.html
Copyright © 2020-2023  润新知