2013-06-18 2 views
6

컬렉션의 값에 따라 각 행에 대한 데이터 격자의 확인란 열을 활성화 또는 비활성화하고 싶습니다. AccountComponent라는 ObservableCollection은 Enabled라는 부울 속성이있는 AccountComponent라는 클래스의 컬렉션입니다. Enabled 속성을 IsReadOnly 및 IsEnabled를 행운으로 바인딩하려고했습니다. 여기DataGridCheckBoxColumn IsReadOnly 속성 바인딩

여기에 내가 이것을 알아내는 어떤 도움이 많이 감사하는 DataGridTemplateColumn-

<DataGridTemplateColumn Header=""> 
        <DataGridTemplateColumn.CellTemplate> 
         <DataTemplate> 
          <Grid> 
           <CheckBox IsChecked="{Binding IsChecked,Mode=TwoWay}" IsEnabled="False"/> 
          </Grid> 
         </DataTemplate> 
        </DataGridTemplateColumn.CellTemplate> 
        <DataGridTemplateColumn.CellEditingTemplate> 
         <DataTemplate> 
          <Grid> 
           <CheckBox IsChecked="{Binding IsChecked,Mode=TwoWay}" IsEnabled="{Binding Enabled}"/> 
          </Grid> 
         </DataTemplate> 
        </DataGridTemplateColumn.CellEditingTemplate> 
       </DataGridTemplateColumn> 

을 시도 XAML의 나는 DataGridCheckBoxColumn-

<DataGridCheckBoxColumn Binding="{Binding IsChecked}" IsReadOnly="{Binding AccountComponents/Enabled}"/> 

을 시도 XAML입니다.

+0

출력 창에서 어떤 메시지가 나타 납니까? –

+0

* 모든 유형의 열에 대한 * any * 속성에 대해 동일합니다. 문제를 추상화하여 검색하고 해결책을 찾으십시오. –

답변

5

먼저 CheckBox를 사용할 때 CellEditingTemplate을 지정할 필요가 없습니다. 확인란 자체는 "편집 가능/확인 가능"입니다. 따라서이 말이 없기 때문에 CellEditingTemplate을 제거하십시오.

은 (당신이 CellEditingTemplate에서 그것을처럼) 당신이 CellTemplate에 AccountComponent 당신의 Enabled 속성에 직접 CheckBox에의 IsEnabled 속성을 결합하는 시도? 이렇게하면 문제가 해결됩니다.

<DataGridTemplateColumn.CellTemplate> 
    <DataTemplate> 
     <Grid> 
      <CheckBox IsChecked="{Binding IsChecked,Mode=TwoWay}" 
         IsEnabled="{Binding Enabled}"/> 
     </Grid> 
    </DataTemplate> 
</DataGridTemplateColumn.CellTemplate> 
+1

마르쿠스 감사합니다. DataGridCheckBoxColumn의 IsReadOnly 속성에 바인딩이 작동하지 않는 이유를 설명해 주시겠습니까? –

+0

테스트하지는 않았지만 'AccountComponents/Enabled'가 포함 된 바인딩 식은 의심스러운 것으로 보입니다. 이 경우 일반적으로 세부 정보가있는 마스터/세부 정보 시나리오에 일반적으로 사용됩니다. 내 첫번째 시도는 IsReadOnly = "{Binding Enabled}" – Markus

+0

나는 그것이 이상하게 보였다고 생각했지만 그것은 데이터 바인딩 팝업 창에서 Enabled를 선택할 때 생성 된 구문 VS이다. 나는 너의 suggesstion을 시도했지만 효과가 없었다. 나는 datatemplatecolumn을 고수 할 것입니다. 당신의 도움을 주셔서 감사합니다. –