コード例 #1
0
        /// <summary>
        /// For internal use only.
        /// </summary>
        /// <param name="factory"></param>
        /// <param name="receiver"></param>
        /// <param name="setter"></param>
        /// <param name="existingValue"></param>
        /// <param name="format"></param>
        /// <returns></returns>
        public static EventCallback <UIChangeEventArgs> CreateBinder(
            this EventCallbackFactory factory,
            object receiver,
            Action <DateTime> setter,
            DateTime existingValue,
            string format)
        {
            // Avoiding CreateBinderCore so we can avoid an extra allocating lambda
            // when a format is used.
            Action <UIChangeEventArgs> callback = (e) =>
            {
                DateTime value     = default;
                var      converted = false;
                try
                {
                    value     = ConvertDateTime(e.Value, format);
                    converted = true;
                }
                catch
                {
                }

                // See comments in CreateBinderCore
                if (converted)
                {
                    setter(value);
                }
            };

            return(factory.Create <UIChangeEventArgs>(receiver, callback));
        /// <summary>
        /// Creates an <see cref="EventCallback"/> for the provided <paramref name="receiver"/> and
        /// <paramref name="callback"/>.
        /// </summary>
        /// <param name="factory">The <see cref="EventCallbackFactory"/>.</param>
        /// <param name="receiver">The event receiver.</param>
        /// <param name="callback">The event callback.</param>
        /// <returns>The <see cref="EventCallback"/>.</returns>
        public static EventCallback <ChangeEventArgs> Create(this EventCallbackFactory factory, object receiver, Func <ChangeEventArgs, Task> callback)
        {
            if (factory == null)
            {
                throw new ArgumentNullException(nameof(factory));
            }

            return(factory.Create <ChangeEventArgs>(receiver, callback));
        }
コード例 #3
0
        /// <summary>
        /// Creates an <see cref="EventCallback"/> for the provided <paramref name="receiver"/> and
        /// <paramref name="callback"/>.
        /// </summary>
        /// <param name="factory">The <see cref="EventCallbackFactory"/>.</param>
        /// <param name="receiver">The event receiver.</param>
        /// <param name="callback">The event callback.</param>
        /// <returns>The <see cref="EventCallback"/>.</returns>
        public static EventCallback <UIErrorEventArgs> Create(this EventCallbackFactory factory, object receiver, Action <UIErrorEventArgs> callback)
        {
            if (factory == null)
            {
                throw new ArgumentNullException(nameof(factory));
            }

            return(factory.Create <UIErrorEventArgs>(receiver, callback));
        }
コード例 #4
0
        /// <summary>
        /// For internal use only.
        /// </summary>
        /// <param name="factory"></param>
        /// <param name="receiver"></param>
        /// <param name="setter"></param>
        /// <param name="existingValue"></param>
        /// <returns></returns>
        public static EventCallback <UIChangeEventArgs> CreateBinder(
            this EventCallbackFactory factory,
            object receiver,
            Action <DateTime> setter,
            DateTime existingValue)
        {
            // Avoiding CreateBinderCore so we can avoid an extra allocating lambda
            // when a format is used.
            Action <UIChangeEventArgs> callback = (e) =>
            {
                setter(ConvertDateTime(e.Value, format: null));
            };

            return(factory.Create <UIChangeEventArgs>(receiver, callback));
        }