KeiStory

WPF DataContext 의 특정 Command 를 찾아 실행하기

 

datacontext 의 특정 Command 명 기준으로 찾아서 실행하는 메서드로 Parameter 를 인자로 전달 할수 있습니다.

using System.Reflection;
using System.Windows.Input;

namespace WpfApp
{
    class TestClass
    {

        /// <summary>
        /// DataContext 의 특정 Command 를 파라미터와 함께 실행합니다.
        /// </summary>
        /// <typeparam name="T">파라미터 타입입니다.</typeparam>
        /// <param name="dataContext">DataContext 입니다.</param>
        /// <param name="command">Command 명입니다.</param>
        /// <param name="parameter">파라미터입니다.</param>
        public static void Execute<T>(object dataContext, string command, T parameter)
        {
            if (dataContext == null)
            {
                return;
            }

            if (string.IsNullOrWhiteSpace(command) == true)
            {
                return;
            }

            // Command 명으로 찾습니다.
            PropertyInfo pi = dataContext.GetType().GetProperty(command);
            if (pi == null)
            {
                return;
            }

            // Command 로 변환합니다.
            ICommand ic = pi.GetValue(dataContext, null) as ICommand;
            if (ic == null)
            {
                return;
            }

            // Command 를 호출합니다.
            ic.Execute(parameter);
        }
    }
}
반응형

'코딩 > WPF' 카테고리의 다른 글

WPF UpdateSourceTrigger란?  (0) 2024.08.13
WPF TextBox 에 PlaceHolder 설정하기  (0) 2024.07.25
WPF MultiBinding 사용하기  (0) 2024.07.25
WPF RelativeSource 간단 설명  (0) 2024.07.25
WPF DrawingBrush 사용하여 화면에 도형 그리기  (0) 2024.07.25

공유하기

facebook twitter kakaoTalk kakaostory naver band