locked
Color ListBox Items RRS feed

  • Вопрос

  • Всем привет. Пишу приложение для WindowPhone. Необходимо поменять цвет каждого элемента листбокса в зависимости от условия. Я делаю так, но почему то все элементы прокрашиваются в один цвет. Спасибо.

    <StackPanel x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
                <ListBox x:Name="GroupPriceListBox" ItemContainerStyle="{StaticResource ListBoxItemStyle1}" SelectionChanged="GroupPriceListBox_SelectionChanged">
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <StackPanel>
                                <TextBlock  
                                           x:Name="MinimumPriceNameTextBlock"
                                            VerticalAlignment="Top"
                                            Foreground="Yellow"
                                            HorizontalAlignment="Stretch"
                                            FontSize="{StaticResource PhoneFontSizeSmall}"
                                            Text="{Binding Path=Service}" />
                                <Grid>
                                    <TextBlock  Height="50"
                                                Width="150"
                                                Margin="0,0,300,0"
                                                FontSize="{StaticResource PhoneFontSizeLarge}" 
                                                VerticalAlignment="Top"/>
                                    <Slider Width="300" 
                                            HorizontalAlignment="Right"
                                            ValueChanged="PriceSlider_ValueChanged" ManipulationStarted="Slider_ManipulationStarted" />
                                </Grid>
                            </StackPanel>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>
            </StackPanel>

      protected override void OnNavigatedTo(NavigationEventArgs e)
            {
                if (settings.Error)
                {
                    if (NavigationService.CanGoBack)
                        NavigationService.GoBack();
                }
                else
                {
                  //  GroupPriceTitle.Text = settings.Profile.Name;
                      GroupPriceTitle.Text = settings.State.Name;
                    try
                    {
                        Group = NavigationContext.QueryString["Group"];
                        if (Group != null)
                        {
                            GroupPriceHeader.Text = Group;
                            List<Offer> list = new List<Offer>();
                            foreach (var offer in OfferList)
                            {
                                Offer item = new Offer(offer.Service, offer.Metric, offer.Price, offer.Approved);
                               
                                if(item.Approved==true)
                                {
                                    /*  var ListItem = new ListBoxItem { Content = item };
                                      ListItem.Foreground = new SolidColorBrush(Colors.Yellow);
                                      GroupPriceListBox.Items.Add(ListItem.ew SolidColorBrush(Colors.Yellow);Content);*/
                                 //   GroupPriceListBox.Foreground= new SolidColorBrush(Colors.Yellow);
                                    
                                    TextBrush = new SolidColorBrush(Colors.Yellow);
                                }
                                else
                                {
                                    /*var ListItem = new ListBoxItem { Content = item };
                                    ListItem.Foreground = new SolidColorBrush(Colors.Yellow);
                                    GroupPriceListBox.Items.Add(ListItem.Content);*/
                                 //   GroupPriceListBox.Foreground = new SolidColorBrush(Colors.Orange);
                                    TextBrush = new SolidColorBrush(Colors.Orange);
                                }
                                list.Add(item);
                            }
                          
                           GroupPriceListBox.ItemsSource = list;
                          
                            settings.Perform(() =>
                            { 
                                SearchVisualTree(GroupPriceListBox);
                            }, 0);
                        }
                    }
                    catch
                    {
                    }
                }
            }

    21 августа 2013 г. 6:13

Ответы

  • Доброго дня!

    Посмотрите пример в обсуждении Changing color of listbox items in Windows Phone 7.

    Возможно, что это подойдет и Вам.


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    22 августа 2013 г. 6:12