2017-11-09 1 views
0

값에 따라 색을 변경하고 싶습니다 : Pass (파란색) 및 Fail (빨간색). 나는 상태 값의 텍스트 색만 바꾸고 싶다.Listview에서 특정 값의 색을 변경하는 방법

는 main.xaml

<ListView x:Name="record_List" 
      HorizontalAlignment="Left" 
      VerticalAlignment="Top" 
      Height="203" Width="382" Margin="553,454,0,0" 
      BorderThickness="0"> 
    <ListView.View> 
     <GridView ColumnHeaderContainerStyle="{StaticResource myHeaderStyle}"> 
      <GridViewColumn Header="State" Width="52" 
          DisplayMemberBinding="{Binding state}"/> 
      <GridViewColumn Header="Stuednt num" Width="80" 
          DisplayMemberBinding="{Binding snum}"/> 
      <GridViewColumn Header="Name" Width="75" 
          DisplayMemberBinding="{Binding name}"/> 
      <GridViewColumn Header="Check time" 
          DisplayMemberBinding="{Binding check_time}"/> 
     </GridView> 
    </ListView.View> 
    <ListView.ItemContainerStyle> 
     <Style TargetType="ListViewItem"> 
      <EventSetter Event="PreviewMouseLeftButtonDown" 
         Handler="ListViewItem_PreviewMouseLeftButtonDown"/> 
     </Style> 
    </ListView.ItemContainerStyle> 
</ListView> 

답변

1

사용 스타일의 열 상태에 대한 트리거를, 당신은 시도 : 고정 :

<GridViewColumn Header="State" Width="52" > 
         <GridViewColumn.CellTemplate> 
          <DataTemplate> 
           <TextBlock Text="{Binding state}"> 
            <TextBlock.Style> 
             <Style TargetType="{x:Type TextBlock}"> 
              <Setter Property="Foreground" Value="Black"></Setter> 
              <Style.Triggers> 
               <DataTrigger Binding="{Binding state}" Value="Pass"> 
                <Setter Property="Foreground" Value="Blue"/> 
               </DataTrigger> 
               <DataTrigger Binding="{Binding state}" Value="Fail"> 
                <Setter Property="Foreground" Value="Red"/> 
               </DataTrigger> 
              </Style.Triggers> 
             </Style> 
            </TextBlock.Style> 
           </TextBlock> 
          </DataTemplate> 
         </GridViewColumn.CellTemplate> 
        </GridViewColumn> 
+0

대답 덕분에 대신 ??? 짖는 소리가 아닙니다 ..... –

+0

@Jin_Jin : 좋습니다. 위의 코드를 업데이트했습니다. 지금은 잘 작동합니다. –

+0

@Jin_Jin 정확히

0

는 가장 쉬운 방법은 스타일과 DataTriggers 사용하는 것입니다 :

<ListView.ItemContainerStyle> 
     <Style TargetType="ListViewItem"> 
      <Setter Property="Background" Value="Gray"/> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding testResult}" Value="Pass"> 
        <Setter Property="Background" Value="Green"/> 
       </DataTrigger> 
       <DataTrigger Binding="{Binding testResult}" Value="Fail"> 
        <Setter Property="Background" Value="Red"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </ListView.ItemContainerStyle> 
+0

답장을 보내 주시면 답변 드리겠습니다. –

+0

모든 라인의 텍스트 색상이 바뀌고, 나는 단지 상태의 텍스트 색상으로 변합니다 .... –

+0

그러면 Luke Le 답을 시도해야합니다. – Bob

관련 문제