2012-07-25 47 views
1

我有一個列表框,它綁定到一個字符串數組。列表框包含一個文本塊,其中包含數組中的字符串文本。我想改變其中的一個的前景(它可能會有所不同,其中一個):在列表框中設置一個特定文本塊的前景 - wp7

<ListBox x:Name="listBox" ItemsSource="{Binding Options}" ScrollViewer.VerticalScrollBarVisibility="Hidden" Width="400" Height="500" Margin="0,200,0,0" HorizontalAlignment="Center" HorizontalContentAlignment="Center" SelectionChanged="ListBox_SelectionChanged" Loaded="listBox_Loaded"> 
      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <ListBoxItem> 
         <Grid Height="75" Width="400" HorizontalAlignment="Center" > 
          <TextBlock HorizontalAlignment="Center" Text="{Binding}" Style="{StaticResource SortingOptions}" /> 
         </Grid> 
        </ListBoxItem> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 

我只是不能似乎得到的TextBlocks的保持,這樣我就可以在正確的改變前景。有誰知道我能做到這一點?謝謝

+0

你可以進入你想要達到什麼樣的細節?更改文字,顏色,...?我對你的解釋有點困惑;) – 2012-07-25 12:16:56

+0

對不起。我想要的是改變一個特定文本塊的前景 – 2012-07-25 12:23:05

+0

好,但基於哪種情況你想改變它嗎? – 2012-07-25 12:23:36

回答

2

將Foreground屬性綁定到與Text相同的值,並使用BindingConverter創建一個Brush。 例如

<Grid.Resources> 
    <yournamespace:ColorConverter x:Key="colConverter"/> 
<Grid.Resources> 


<TextBlock 
    HorizontalAlignment="Center" 
    Text="{Binding}" 
    Foreground="{Binding, Converter={StaticResource colConverter}}" 
    Style="{StaticResource SortingOptions}" /> 

添加您的轉換器類:

public class ColorConverter : IValueConverter 
    { 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     // TODO: match from the value parameter to a color. 

     return new SolidColorBrush(Colors.Red); 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     throw new NotImplementedException(); 
    } 
} 
+0

那太容易了,太棒了。爲什麼我沒有想到這個?非常感謝! – 2012-07-25 12:41:16

+0

我會,只是確保它的工作第一;) – 2012-07-25 12:49:06

+0

好吧,我確實在這一行上得到一個錯誤:Foreground =「{Binding,Converter = {StaticResource SortingColorConverter}}」說一些意想不到的逗號。是因爲它只說綁定嗎? – 2012-07-25 12:56:36

相關問題