@Coincoin
действительная мощность foreach дополнительного метода включает возможность многократного использования Action<>
, не добавляя ненужные методы к Вашему коду. Скажите, что у Вас есть 10 списков, и Вы хотите выполнить ту же логику на них, и соответствующая функция не вписывается в Ваш класс и не снова используется. Вместо того, чтобы иметь десять для циклов или родовой функции, которая является, очевидно, помощником, который не принадлежит, можно сохранить всю логику в одном месте (Action<>
. Так, десятки строк заменяются
Action<blah,blah> f = { foo };
List1.ForEach(p => f(p))
List2.ForEach(p => f(p))
и т.д.
, логика находится в одном месте, и Вы не загрязнили свой класс.
Нет, вы можете добавлять свойства зависимости только к классам, которые являются производными от DependencyObject, MarkupExtention является производным непосредственно от Object
Да... это уродливая проблема... Однако она имеет простое неинтуитивное решение.
Создайте другое расширение разметки для получения статического ресурса.
Поэтому вместо использования {StaticResource shapesDS}
Вы создадите новое расширение разметки под названием DataSetLocator
Я не собираюсь писать код, но значение Provide должно возвращать ваш набор данных на основе имени или какого-то другого ввода.
Затем вы изменяете свой xaml, чтобы ваше расширение использовало расширение локатора набора данных пример Source="{DataSetLocator name=shapesDS }"
Жаль, что расширения не расширяют DependencyProperty, но это не так.