2012-07-31 2 views
1

동일한 행의 다른 셀에있는 값에 따라 행에있는 perticular 셀을 사용하지 않도록 설정해야합니다.xamdatagrid 조건부로 열 사용 안 함

WPF 또는 WPF MVVM 시나리오는 두 가지 솔루션을 환영합니다.

둘 다 시도했지만 아무 것도 작동하지 않았습니다!

답변

0

감사합니다. @Grenter. Converter 클래스를 구현하고이를 xaml 파일의 정적 리소스로 구현하여 문제를 해결했습니다. 또한 셀 업데이트 또는 셀 업데이트 이벤트를 사용하여 동일한 작업을 수행 할 수 있으며 xaml 코드 뒤에 일부 코드 행을 작성하는 것은 일반적으로 선호하지 않습니다.

그러나 변환기는 확실히 앞으로 나아갈 방법입니다.

감사합니다.

2

나는 당신을 올바르게 이해하고 있습니다.

Datagrid.Columns 섹션 (아래 코드 참조)에서 DataGridTemplateColumn을 살펴보면 열/셀에 대해 고유 한 템플릿을 설정 한 다음 enabled 속성을 설정할 수 있습니다. 다음은 간단한 해결책 일 뿐이므로 앞으로 행에서 항목을 활성화 할 수있는 모델을 업데이트하는 사용 가능 체크 박스를 변경할 때 그렇게 할 것입니다.

 <DataGrid Name="dgrgrid" AutoGenerateColumns="False">     
      <DataGrid.Columns> 
       <DataGridTemplateColumn Header="Name"> 
        <DataGridTemplateColumn.CellTemplate> 
         <DataTemplate> 
          <TextBox Text="{Binding Name}" IsEnabled="{Binding Enabled}" /> 
         </DataTemplate> 
        </DataGridTemplateColumn.CellTemplate> 
       </DataGridTemplateColumn> 
       <DataGridTextColumn Header="Type" /> 
       <DataGridTextColumn Header="Size" /> 
       <DataGridTextColumn Header="Price" /> 
       <DataGridCheckBoxColumn Header="Row Enabled" Binding="{Binding Enabled}" /> 
      </DataGrid.Columns> 
     </DataGrid> 

코드 뒤에 나는 당신이 아래에서 볼 수있는 몇 가지 속성을 가진 Cheese 클래스의 간단한 관찰 가능한 컬렉션을 가지고 있습니다. (이것은 기본 M-V-VM 기술입니다.)

+0

아, 한 가지 더 놓친 점은 다른 열이나 동일한 행의 값에 바인딩 한 다음 문자열 값을 가시성 또는 참 거짓으로 변환하는 변환기 (아래 링크 참조)를 사용할 수 있다는 것입니다. 옆에있는 열의 값을 기반으로 열을 비활성화 할 수 있습니다. http://wpftutorial.net/ValueConverters.html – Grenter