Обзор - Leksiqq/WpfMarkupExtension GitHub Wiki
Библиотека Net.Leksi.WpfMarkupExtension предназначена для расширения разметки WPF. Она содержит несколько классов, которые могут оказаться полезными при разработке XAML. Все классы содержатся в пространстве имён Net.Leksi.WpfMarkup.
- StyleCombiner - позволяет применять несколько стилей к элементу без наследования.
- ParameterizedResource - аналог
StaticResourceExtension, позволяющий использовать ресурсы с параметрами, которые в разметке можно заменять различными значениями. - XamlServiceProviderCatcher - позволяет использовать ParameterizedResource в коде.
- BindingProxy - универсальный ресурс, способный служить ссылкой на любой объект или выступать в качестве привязки.
- BindingProxyMarkup - используется, когда необходимо разместить значение привязки там, где требуется расширение разметки.
- IUniversalConverter - комбинирует интерфейсы
System.Windows.Data.IValueConverterиSystem.Windows.Data.IMultiValueConverterдля удобства. - DataSwitch - используется вместо большого количества
DataTrigger, имеющих одну и ту же привязку, но различные пусковые значения. Сокращает как текст XAML, так и количество обращений к источнику привязки. - BoolExpressionConverter - неполная реализация интерфейса
IMultiValueConverter, в котором реализован методobject Convert(object[] values, Type targetType, object parameter, CultureInfo culture), которому передаётся массивboolзначенийvaluesи строка, описывающая Булево выражение над ними, в качествеparameter. Возвращает результат вычисления выражения. - ConverterProxy - адаптер, являющийся
MarkupExtensionдля конвертеровIValueConverterилиIMultiValueConverter, которые не являютсяMarkupExtensionи не могут ими стать, так как уже унаследованы от другого типа, но требуются там, где ожидаетсяMarkupExtension.
Ознакомиться со способом применения библиотеки можно с помощью демо-приложения.
Исходники лежат здесь
Пакет NuGet: Net.Leksi.WpfMarkupExtension
Дальше: (StyleCombiner)