示例#1
0
        /// <summary>
        /// Applies the action conventions.
        /// </summary>
        /// <param name="element">The element.</param>
        /// <param name="model">The model.</param>
        protected virtual void ApplyMessageConventions(DependencyObject element, object model)
        {
            var modelType = GetModelType(model);
            var host      = new ActionHost(
                modelType,
                _actionFactory,
                _serviceLocator
                );

            foreach (var action in host)
            {
                var found = FindControl(element, action.Name);
                if (found == null)
                {
                    continue;
                }

                var triggers = Message.GetTriggers(found);
                if (triggers != null && triggers.Count > 0)
                {
                    continue;
                }

                AttachMessage(action, found);
            }
        }
        private void CreateAction()
        {
            var host = new ActionHost(
                Command.GetType(),
                _actionFactory,
                ServiceLocator.Current
                );

            host.SelectMany(x => x.Filters.HandlerAware)
            .Union(host.Filters.HandlerAware)
            .Apply(x => x.MakeAwareOf(this));

            CreateActionMessage();

            _action            = host.GetAction(_actionMessage);
            _action.Completed += delegate { OnCompleted(); };
        }
示例#3
0
        /// <summary>
        /// Applies the action conventions.
        /// </summary>
        /// <param name="element">The element.</param>
        /// <param name="model">The model.</param>
        protected virtual void ApplyMessageConventions(DependencyObject element, object model)
        {
            var modelType = GetModelType(model);
            var host = new ActionHost(
                modelType,
                _actionFactory,
                _serviceLocator
                );

            foreach (var action in host)
            {
                var found = FindControl(element, action.Name);
                if (found == null) continue;

                var triggers = Message.GetTriggers(found);
                if (triggers != null && triggers.Count > 0) continue;

                AttachMessage(action, found);
            }
        }