2012-06-22 3 views
0

다음과 같은 DataGrid가 있고 그리드가 읽기 전용으로 설정되어 있지만 조건을 설정하는 방법이 확실하지 않은 경우 cover = false 행을 색칠하고 싶습니다. 문제는 첫 번째 조건으로 보인다 어디에 커버 = 내가 다른 하나는 당신이 체크 박스 컬럼에 커버를 바인딩 할 때 내가 그 이상 발견DataGrid에서 다중 트리거 조건이 작동하지 않습니까?

 <DataGrid ItemsSource="{Binding AvailableRows}" AlternatingRowBackground="Lavender" Grid.Row="1" 
        IsReadOnly="{Binding IsEditable, Converter={StaticResource InvertedBoolConverter}}" CanUserResizeColumns="True"> 
      <DataGrid.Columns> 
       <DataGridTextColumn Binding="{Binding TabName}" Header="Tab Name" CanUserSort="False" Width="1.5*"> 
        <DataGridTextColumn.ElementStyle> 
         <Style TargetType="TextBlock"> 
          <Setter Property="TextWrapping" Value="Wrap"/> 
         </Style> 
        </DataGridTextColumn.ElementStyle> 
       </DataGridTextColumn> 
       <DataGridTextColumn Binding="{Binding GroupSummaryTabRowDescription.Description}" Header="Benefit" CanUserSort="False" Width="2*" IsReadOnly="True"> 
        <DataGridTextColumn.ElementStyle> 
         <Style TargetType="TextBlock"> 
          <Setter Property="TextWrapping" Value="Wrap"/> 
         </Style> 
        </DataGridTextColumn.ElementStyle> 
       </DataGridTextColumn> 
       <DataGridCheckBoxColumn Binding="{Binding Cover, Converter={StaticResource YNToBoolConverter}}" Header="Cover" CanUserSort="False" Width="1*"/> 
       <DataGridTextColumn Binding="{Binding RuleDescription, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Header="Rule" CanUserSort="False" Width="3.5*"> 
        <DataGridTextColumn.ElementStyle> 
         <Style TargetType="TextBlock"> 
          <Setter Property="TextWrapping" Value="Wrap"/> 
         </Style> 
        </DataGridTextColumn.ElementStyle> 
       </DataGridTextColumn> 
       <DataGridTextColumn Binding="{Binding AdditionalInfo, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Header="Additional Info" CanUserSort="False" Width="4*"> 
        <DataGridTextColumn.ElementStyle> 
         <Style TargetType="TextBlock"> 
          <Setter Property="TextWrapping" Value="Wrap"/> 
         </Style> 
        </DataGridTextColumn.ElementStyle> 
       </DataGridTextColumn> 
      </DataGrid.Columns> 
      <DataGrid.RowStyle> 
       <Style TargetType="DataGridRow"> 
        <Style.Triggers> 
         <MultiDataTrigger> 
          <MultiDataTrigger.Conditions> 
           <Condition Binding="{Binding Cover}" Value="False"/> 
           <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=IsReadOnly}" Value="True"/> 
          </MultiDataTrigger.Conditions> 
          <Setter Property="Foreground" Value="Red" /> 
         </MultiDataTrigger> 
        </Style.Triggers> 
       </Style> 
      </DataGrid.RowStyle> 
     </DataGrid> 

답변

2

를 작동하고이 조건을 제거하면, 당신이 변환기를 사용으로 거짓

Converter={StaticResource YNToBoolConverter}} 

은 Cover 속성이 부울 값이 아님을 나타냅니다. 조건부 바인딩에서 동일한 변환기를 시도 했습니까?

+0

내가 그것을 놓쳤다 고 나는 믿을 수 없다! 제 오류를 지적 해 주셔서 대단히 감사합니다. 문제가 해결되었습니다. – soaloa

관련 문제