프로그래밍/WPF

[WPF] DataGrid DataGridTemplateColumn 사용시 Ctrl+C (복사하기) 기능

흔한티벳여우 2023. 5. 22. 13:32
반응형

 안녕하세요, 오늘은 WPF의 DataGrid에서 DataGridTemplateColumn을 사용하면서 Ctrl+C로 셀의 내용을 복사하는 방법에 대해 이야기하려고 합니다. 복사하는 기능은 기본적으로 제공되지만, DataGridTemplateColumn을 사용하면 기본 설정이 작동하지 않을 수 있습니다. 이럴 때에는 ClipboardContentBinding 속성을 사용하면 해결할 수 있습니다.

ClipboardContentBinding 속성이란?

WPF의 DataGrid 컨트롤에서는 ClipboardContentBinding이라는 속성을 통해 셀의 내용이 클립보드에 어떻게 복사되는지 제어할 수 있습니다. 기본적으로 각 DataGridColumn에는 이 속성이 있으며, 해당 열의 셀이 클립보드에 복사될 때 사용되는 Binding을 설정합니다.

 

DataGridTemplateColumn과 ClipboardContentBinding 사용하기

DataGridTemplateColumn을 사용할 때는 기본적으로 복사 기능이 동작하지 않습니다. 이럴 때는 ClipboardContentBinding을 사용하여 복사 기능을 제어하면 됩니다.

예를 들어, 다음과 같이 DataGridTemplateColumn을 정의하고, ClipboardContentBinding을 사용하여 복사할 값을 설정해 보겠습니다.

<DataGridTemplateColumn Header="MyColumn">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding MyProperty}" />
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
    <DataGridTemplateColumn.ClipboardContentBinding>
        <Binding Path="MyProperty" />
    </DataGridTemplateColumn.ClipboardContentBinding>
</DataGridTemplateColumn>

위의 예제에서, TextBlock은 MyProperty에 바인딩되어 화면에 표시되며, 클립보드에 복사될 때에도 MyProperty가 사용됩니다.

 

결론

DataGridTemplateColumn을 사용하면서도 Ctrl+C로 셀의 내용을 손쉽게 복사할 수 있습니다. 이는 ClipboardContentBinding 속성을 통해 가능하며, 복사될 값에 대해 사용자 정의를 할 수 있어 매우 유연한 사용이 가능합니다.

반응형