2015-02-04 2 views
0

gridviewitem에 포함 된 텍스트 블록의 값에 따라 gridviewitem의 색상을 변경하고 싶습니다.gridviewitem의 값을 기준으로 색상을 변경하십시오 (App 8.1 저장)

<GridViewItem x:Name="IdeaGridView" Loaded="IdeaGridView_Loaded" 
         DataContext="{Binding}" Height="150" Width="250" HorizontalAlignment="Left" > 
         <StackPanel Height="150" > 
          <StackPanel Background="#CC00CC" HorizontalAlignment="Left" VerticalAlignment="Top" Width="250" Height="100"> 
           <TextBlock Text="{Binding Title}" TextWrapping="Wrap" 
                Style="{StaticResource TxtStyle1}" ></TextBlock> 
           <TextBlock Text="{Binding Category}" TextWrapping="Wrap" 
                Style="{StaticResource TxtStyle2}" ></TextBlock> 

          </StackPanel> 
          <Grid Background="Purple" VerticalAlignment="Bottom" Height="50"> 
           <StackPanel Orientation="Horizontal" HorizontalAlignment="Left"> 
            <Image Height="20" Width="20" Source="Assets/phone.png"></Image> 
            <TextBlock Style="{StaticResource TxtStyle3}" TextWrapping="Wrap" 
                   Text="{Binding Type}"></TextBlock> 
           </StackPanel> 
          </Grid> 
         </StackPanel> 

        </GridViewItem> 

난 ..의 gridview가 itemssource 같은 개체를 구비하는 속성 "카테고리"의 값에 기초 gridviewitem의 색상을 설정할. 그래서 일부 속성을 기반으로 색상을 변경하고 싶습니다. 어떤 제안?

답변

0

이 일할 수있는

<Page.Resources> 
     <Common:CategoryToColorConverter x:Key="CategoryToColorConverter"/> 
</Page.Resources> 

...Color={Binding Category,Converter={StaticResource CategoryToColorConverter}}... 

는 희망이 도움이!

0

값을 색상으로 변환 할 수있는 사용자 지정 IValueConverter을 만들 수 있습니다. 또는 색상 논리를 ViewModel로 이동하고 색상 속성을 직접 제공 할 수 있습니다.

class CategoryToColorConverter: IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, string language) 
    { 
    if((bool)value) 
     return Colors.White; 
    else 
     return Colors.Black; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, string language) 
    { 
     if((bool)value) 
      return Colors.Black; 
      else 
      return Colors.White; 
    } 
} 

와 바인딩은 다음과 같이 작동합니다 :

관련 문제