WPF DataGrid 질문

안녕하세요

WPF DataGrid 사용중인데 한가지 문의좀 드립니다

예를들어 아래와 같은 MyData 클래스를 DataGrid 에 바인딩 하려고합니다

public class MyData
{
  public int Id {get;set;}
  public bool IsReadOnly {get;set;}
  public string Value {get;set;}
}

그리고 xaml 코드는 다음과 같습니다 (MyData 바인딩하였으며 xaml 코드는 간략하게 작성했습니다)

<DataGrid.Columns>
    <DataGridTextColumn Header="Id" IsReadOnly="True" Binding="{Binding Id}"/>
    <DataGridTextColumn Header="IsReadOnly" IsReadOnly="True" Binding="{Binding IsReadOnly}"/>
    <DataGridTextColumn Header="Value" IsReadOnly="False" Binding="{Binding Value}"/>
</DataGrid.Columns>

여기서 궁금한건

MyData 의 IsReadOnly 의 값에따라 Value 컬럼의 읽기전용 속성을 자동으로 설정하도록 하고싶은데

현재는 그 방법을 몰라서 일단 False 로 지정하였습니다

xaml 코드에서 Binding 을 사용하면 DataGridTextColumn 이 표시하는 텍스트값을 대상으로 하는것같은데

DataGridTextColumn 의 IsReadOnly 같은 속성에 MyData.IsReadOnly 값을 바인딩을 하려면 어떻게 해야하는지 방법이 궁금합니다.

False로 지정해준 부분을 IsReadOnly가 Bool형식이니 바인딩으로 해주심될듯해요

IsReadOnly="{Binding IsReadOnly}
1 Like

네 댓글 감사합니다

Model의 get에서 bool값으로 readonly의 값을 지정해주고 view에서 바인딩하는 방법 어떤가요?

1 Like

xmal 코드에서 바인딩으로 자동으로 설정하도록 하려고했는데

말씀대로 모델에서 IsReadOnly 값을 설정한채로 바인딩해도 되겠네요

댓글 감사합니다~~

1 Like