private void Init()
        {
            if (_cachedViewModel == null)
            {
                _cachedViewModel = GetComponentInParent <VMBase>();
            }

            _cachedViewModel.OnPropertyChanged += OnPropertyChanged;

            _cachedVMProperty = BindingExtensions.GetPropertyInfoOf <TPLD>(_cachedViewModel);

            _propertyChangeValidator = new PropertyChangeValidator();
        }
        private void Init()
        {
            if (_cachedViewModel == null)
            {
                _cachedViewModel = GetComponentInParent <VMBase>();
            }

            _cachedViewModel.OnPropertyChanged += OnPropertyChanged;

            _cachedViewModel.OnVMStateChanged += OnVMStateChanged;

            _cachedVMProperty = BindingExtensions.GetPropertyInfoOf <TPLD>(_cachedViewModel);

            _cachedMethodInfoColl = new Dictionary <string, MethodInfo>();
            foreach (string methodName in _viewModelMethodNameColl)
            {
                _cachedMethodInfoColl.Add(methodName, BindingExtensions.GetMethodInfoOf(_cachedViewModel, methodName));
            }

            _propertyChangeValidator = new PropertyChangeValidator();
        }