Здравствуйте, IT, Вы писали:
IT>Практика может и старая и даже распространённая, но при этом весьма извращённая и ограниченная.
Я бы не сказал что императивное описание лучше.
AVK>>Что же касается стилей, то тут вообще непонятно где в них нашел императив. IT>Стили по своей сути не что иное как тупое присваивание одного значения другому.
Это только твоя точка зрения на проблему. А объективно я никакой императивщины там не вижу.
IT>Кстати, кроме этих нелепых попыток симулировать императив ещё сильно достаёт отсутствие нормальных возможностей повторного использования кода, циклов и пр. В результате приходится нещадно копипастить.
Сгенери стиль в Т4. Хотя вот пишу периодически LESS стили и вот как то ни разу не испытывал необходимости в циклах. А повторное использованием может быть и в декларативном описании, все тот же LESS тому пример.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Сгенери стиль в Т4. Хотя вот пишу периодически LESS стили и вот как то ни разу не испытывал необходимости в циклах. А повторное использованием может быть и в декларативном описании, все тот же LESS тому пример.
Да, только WPF стили значительно уступают по удобству LESS.
Здравствуйте, ionoy, Вы писали:
I>Да, только WPF стили значительно уступают по удобству LESS.
Вполне возможно. Я ж не спорю что XAML довольно неудобный язык. Мне не нравится идея делать стили императивными. А добавить в WPF вложенные стили и шаблоны стилей вполне можно.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
Здравствуйте, AndrewVK, Вы писали:
AVK>А добавить в WPF вложенные стили и шаблоны стилей вполне можно.
По-моему, там надо не столько вложенность, сколько нормально написанные базовые стили. Потому что сейчас в шаблонах гвоздями прибито всё.
Нужен фон для кнопки? Переписывай шаблон.
Word wrapping в checkbox? Переписывай шаблон.
Произвольное выравнивание в TreeViewItem? Нувыпоняли
* Для последнего есть красивейший хак, но эт скорее исключение, чем правило.
Здравствуйте, PeterZT, Вы писали:
PZT>А как бы вы переделали WPF?
Как переделали ASP.NET WebForms? Выкинули нафиг XML и сделали нормальный C# подобный язык, органично совмещающийся с html. Что-то подобное нужно и здесь. XAML ведь всё равно сначала транслируется в C#, а уже потом исполняется.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, AndrewVK, Вы писали:
IT>>Практика может и старая и даже распространённая, но при этом весьма извращённая и ограниченная. AVK>Я бы не сказал что императивное описание лучше.
То, что используется в стилях вообще никуда не годится.
IT>>Стили по своей сути не что иное как тупое присваивание одного значения другому. AVK>Это только твоя точка зрения на проблему. А объективно я никакой императивщины там не вижу.
То, что ты её не видишь вовсе не означает, что её там нет. Вот это по-твоему что?
<Setter Property="FontWeight" Value="Bold" />
AVK>Сгенери стиль в Т4. Хотя вот пишу периодически LESS стили и вот как то ни разу не испытывал необходимости в циклах. А повторное использованием может быть и в декларативном описании, все тот же LESS тому пример.
Я же не говорю, что без циклов нельзя. Я говорю, что с циклами гораздо лучше.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, AndrewVK, Вы писали:
AVK>А если так: font-weight: bold то уже все, императивщины нет?
Императивщины нет даже вот так: let a = b. Но вот так: a.b = c уже сплошная императивщина.
IT>>Я же не говорю, что без циклов нельзя. Я говорю, что с циклами гораздо лучше.
AVK>Чем? Что это за стиль такой, в котором цикл нужен?
Как раз цикл часто полезен, чтобы избавится от ненужных стилей. Иначе приходится создавать бесконечное количество стилей, чтобы перекрыть, например, в DataGridCell один единственный элемент, помещать этот стиль хрен знает в какие ресурсы, незабывать от чего его там наследовать и т.п. В результате xaml превращается в полную хрень из копипасты стилей там и сям, а понимание того что происходит — в скачки по ресурсам. Более простым, наглядным и главное более поддерживаемым решением было бы прямо по месту задать нужные свойства ячейкам грида. Да даже присвоение стиля ячейкам можно было бы делать в цикле. К тому же существует множетсво мест, которые стилями хрен задашь, например, StringFormat баиндинга.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
AVK>>А если так: font-weight: bold то уже все, императивщины нет? IT>Императивщины нет даже вот так: let a = b.
Ну то естьпромлема исключительно в названии тега?
IT> Но вот так: a.b = c уже сплошная императивщина.
А если так:
a{
b: c;
}
?
IT> например, в DataGridCell один единственный элемент, помещать этот стиль хрен знает в какие ресурсы, незабывать от чего его там наследовать и т.п.
Я по прежнему не понимаю, чем тебя тут спасет цикл.
IT>Более простым, наглядным и главное более поддерживаемым решением было бы прямо по месту задать нужные свойства ячейкам грида.
Микс структуры и стилей доже скверное решение.
IT> Да даже присвоение стиля ячейкам можно было бы делать в цикле.
Зачем??? Разве не проще просто прицепить стиль ячейки к всему гриду?
IT> К тому же существует множетсво мест, которые стилями хрен задашь, например, StringFormat баиндинга.
Это никакого отношения к императивности стилей не имеет.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
Здравствуйте, AndrewVK, Вы писали:
IT>> Да даже присвоение стиля ячейкам можно было бы делать в цикле.
AVK>Зачем??? Разве не проще просто прицепить стиль ячейки к всему гриду?
А если у ячеек должен быть разный стиль в зависимости от контекста? Скажем, случайный цвет фона, но отличный от цвета двух предыдущих ячеек, если они совпадают.
Здравствуйте, Qbit86, Вы писали:
Q>А если у ячеек должен быть разный стиль в зависимости от контекста? Скажем, случайный цвет фона, но отличный от цвета двух предыдущих ячеек, если они совпадают.
И часто тебе такой изврат нужен? Мне вот ни разу за 15 лет профдеятельности не понадобилось.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
VD>Ну, да. Знакомо. 10 лет сливать рынок Яве и потом спохватиться. Так было с Windows, IE и многим другим. VD>Как бы не вышло как с виндофонами.
Я лишь объясняю что делают и почему... А что из этого получится — это не ко мне.
Здравствуйте, Qbit86, Вы писали:
Q>А если у ячеек должен быть разный стиль в зависимости от контекста? Скажем, случайный цвет фона, но отличный от цвета двух предыдущих ячеек, если они совпадают.
А как это должно в стиле выглядеть? В виде псевдокода, если можно.
Здравствуйте, ionoy, Вы писали:
Q>>Скажем, случайный цвет фона, но отличный от цвета двух предыдущих ячеек, если они совпадают. I>А как это должно в стиле выглядеть? В виде псевдокода, если можно.
for (var i = 0; i != cellCount; ++i)
{
cells[i].Color = (i > 1 && cells[i - 1].Color == cells[i - 2].Color)
? GetRandomColorExcept(cells[i - 1].Color)
: GetRandomColor();
}
Здравствуйте, IT, Вы писали:
IT>Давай обойдёмся без подобных аргументов.
Ну тогда я могу, путем выдумывания правильной задачи, обосновать непригодность любой технологии.
Если тебе нужно стоя, в гамаке и в ластах — C# тебе в руки, задвать стили программно позволяет и текущая реализация WPF.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
Здравствуйте, Qbit86, Вы писали:
Q>Здравствуйте, ionoy, Вы писали:
Q>>>Скажем, случайный цвет фона, но отличный от цвета двух предыдущих ячеек, если они совпадают. I>>А как это должно в стиле выглядеть? В виде псевдокода, если можно. Q>