WPF Datagrid에서 셀 편집을 비활성화하려면 어떻게해야합니까?


116

Windows Presentation Foundation에서 데이터 그리드를 구성하고 있는데 문제가 있습니다. 사용자가 내 데이터 그리드의 셀을 두 번 클릭하면 셀이 편집 모드로 전환됩니다. 나는 그것을 막고 싶다. 대신 사용자가 행의 값을 편집하지 않고 전체 행을 선택할 수 있기를 바랍니다.

두 번 클릭하면 클릭 한 셀을 편집 모드에 두는 대신 전체 행을 선택하도록하려면 어떻게해야합니까?

답변:


254

WPF DataGrid에는 사용자가 의 셀을 편집 할 수 없도록 IsReadOnly설정할 수 있는 속성이 있습니다 .TrueDataGrid

DataGrid필요에 따라의 개별 열에 대해이 값을 설정할 수도 있습니다 .


1
그리드가 회색으로 표시되고 비활성화 된 상태로 보입니다. winforms의 읽기 전용 상태와 비슷하지 않습니다.
부다 플로린

3
나는 Buda Florin에 동의합니다. ReadOnly로 설정하면 비활성화 된 것처럼 보입니다. Disabled와 ReadOnly는 일반적으로 ReadOnly를 사용하여 복사 할 텍스트를 선택할 수 있기 때문에 다릅니다. DataGrid를 ReadOnly로 설정하면 더 이상 셀에서 텍스트를 선택할 수 없습니다.
Nick

2
@LeslieDavies 비활성화 상태로 유지하고 DEL 키를 누를 때 데이터 그리드에서 항목을 제거 할 수 있기를 원하면 어떻게해야합니까?
Roxy'Pro

@ Roxy'Pro, 저도 같은 질문이 있습니다. 해결책을 찾았습니까?
Patrick

45

DataGrid에는 IsReadOnly다음과 true같이 설정할 수 있는 XAML 속성 이 있습니다 .

<my:DataGrid
    IsReadOnly="True"
/>

3

전체 그리드 편집을 비활성화하려면 그리드에서 IsReadOnly를 true로 설정할 수 있습니다. 사용자가 새 행을 추가하지 못하도록하려면 CanUserAddRows = "False"속성을 설정합니다.

<DataGrid IsReadOnly="True" CanUserAddRows="False" />

또한 개별 열에 IsReadOnly를 설정하여 편집을 비활성화 할 수 있습니다.


2

행 삭제를 허용하는 동안 셀 편집을 비활성화하는 방법을 궁금해하는 댓글에서 사용자를 봅니다. DataGrid 자체 대신 모든 열을 개별적으로 읽기 전용으로 설정하여이 작업을 수행했습니다.

<DataGrid IsReadOnly="False">
    <DataGrid.Columns>
        <DataGridTextColumn IsReadOnly="True"/>
        <DataGridTextColumn IsReadOnly="True"/>
    </DataGrid.Columns>
</DataGrid>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.