Приоритеты класса CSS

Я извиняюсь за всех, кто пытался мне помочь, но я не мог ответить, потому что я не предоставил важный элемент: класс CatSorter. Вот где изменения должны были быть сделаны. Вот это до модификации:

public class CatSorter : Comparer<Achat>
{
    public override int Compare(Achat x, Achat y)
    {
        int result = x.CatArt.CompareTo(y.CatArt);

        if (result != 0)
        {
            return result;
        }
        else
        {
            result = x.CatOrder.CompareTo(y.CatOrder);

            if (result != 0)
            {
                return result;
            }
            else
            {
                return x.NomArt.CompareTo(y.NomArt);
            }
        }
    }
}

И после модификации:

public class CatSorter : Comparer<Achat>
{
    public override int Compare(Achat x, Achat y)
    {
        int result = x.CatOrder.CompareTo(y.CatOrder);

        if (result != 0)
        {
            return result;
        }
        else
        {
            result = x.CatArt.CompareTo(y.CatArt);

            if (result != 0)
            {
                return result;
            }
            else
            {
                return x.NomArt.CompareTo(y.NomArt);
            }
        }
    }
}

И в методе, который читает и группирует Listview, необходимо сгруппировать список по имени статья (CatArt), а не по рейтинговому номеру (CatOrder). Вот строка для исправления:

_groupingCollection.ArrangeItems(new CatSorter(), (x => x.CatArt));

Эти изменения делаются, программа группирует статьи по категориям, категории классифицируются в соответствии с порядком, выбранным пользователем, и, самое главное, это имя категории, которая появляется в качестве заголовка группы, а не номер рейтинга. Надеюсь, мой ответ достаточно ясен.

25
задан Paul Roub 26 April 2016 в 19:22
поделиться

3 ответа

Похоже на проблему специфичности CSS . Попробуйте изменить свой набор правил .selectedItem на:

.dynamicList li.selectedItem {
  background-color: #0000ff;
}
26
ответ дан 28 November 2019 в 20:43
поделиться

Краткий ответ: ваш стиль .selectedItem не применяется, поскольку предыдущий стиль более специфичен и поэтому имеет более высокий приоритет. Вот достойное краткое изложение :

Теперь давайте составим общий список внутренних приоритетов для CSS (3 имеет самый высокий приоритет):

element
.class
#id

Это порядок приоритетов по умолчанию. В дополнение к этому, также будет учитываться специфичность, f.ex ul li будет переопределять li. W3C составил приличную таблицу для расчета внутреннего веса:

LI            {...}  /* a=0 b=0 c=1 -> specificity =   1 */
UL LI         {...}  /* a=0 b=0 c=2 -> specificity =   2 */
UL OL LI      {...}  /* a=0 b=0 c=3 -> specificity =   3 */
LI.red        {...}  /* a=0 b=1 c=1 -> specificity =  11 */
UL OL LI.red  {...}  /* a=0 b=1 c=3 -> specificity =  13 */
#list         {...}  /* a=1 b=0 c=0 -> specificity = 100 */

А вот спецификация W3C .

17
ответ дан cletus 28 November 2019 в 20:43
поделиться

Измените правило selectedItem на:

.dynamicList li.selectedItem
{
    background-color: #0000ff;
}
7
ответ дан 28 November 2019 в 20:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: