DepedencyProperty в MarkupExtension

@Coincoin

действительная мощность foreach дополнительного метода включает возможность многократного использования Action<>, не добавляя ненужные методы к Вашему коду. Скажите, что у Вас есть 10 списков, и Вы хотите выполнить ту же логику на них, и соответствующая функция не вписывается в Ваш класс и не снова используется. Вместо того, чтобы иметь десять для циклов или родовой функции, которая является, очевидно, помощником, который не принадлежит, можно сохранить всю логику в одном месте (Action<>. Так, десятки строк заменяются

Action<blah,blah> f = { foo };

List1.ForEach(p => f(p))
List2.ForEach(p => f(p))

и т.д.

, логика находится в одном месте, и Вы не загрязнили свой класс.

11
задан Dave Clemmer 31 August 2011 в 16:32
поделиться

2 ответа

Нет, вы можете добавлять свойства зависимости только к классам, которые являются производными от DependencyObject, MarkupExtention является производным непосредственно от Object

5
ответ дан 3 December 2019 в 11:52
поделиться

Да... это уродливая проблема... Однако она имеет простое неинтуитивное решение. Создайте другое расширение разметки для получения статического ресурса. Поэтому вместо использования {StaticResource shapesDS}

Вы создадите новое расширение разметки под названием DataSetLocator

Я не собираюсь писать код, но значение Provide должно возвращать ваш набор данных на основе имени или какого-то другого ввода.

Затем вы изменяете свой xaml, чтобы ваше расширение использовало расширение локатора набора данных пример Source="{DataSetLocator name=shapesDS }"

Жаль, что расширения не расширяют DependencyProperty, но это не так.

0
ответ дан 3 December 2019 в 11:52
поделиться
Другие вопросы по тегам:

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