В большинстве случаев привязки создаются навсегда и не должны настраиваться, поэтому создание привязки в коде безопасно:
Пример
public class MaxWidthBidning: MultiBinding
{
public MaxWidthBidning()
{
this.Bindings.Add(...)
...
}
}
Этот подход очень помогает при работе с громоздкими MultiBindings с конвертерами, превращая 5 ++ строки XAML в одну.
<local:Control ComplexProperty={local:MaxWidthBidning} />
Обновление 1 - Говоря об уменьшении «визуального беспорядка» в целом, я могу назвать два основных метода, которые мы используем:
ДляНе запечатанные объекты, принятые XAML (обратите внимание, что некоторые производные объекты не могут быть использованы в XAML по какой-то причине (ожидается точное совпадение типов вместо проверки IsDervied) - поэтому всегда пробуйте это раньше. Например, Bidning - вы можете создатькласс, извлеченный из Binding и проводящий материал (отдельные пути MultiBinding и конвертер), который не предполагается изменять в XAML.
Например, для закрытых объектов - DoubleAnimationUsingKeyFrames - вы можетесоздайте прикрепленное поведение, например «StreamlinedAnimation.Definition», и с его помощью создайте громоздкие части в коде, поэтому ваша анимация будет выглядеть следующим образом:
<DoubleAnimationUsingKeyFrames local:StreamlinedAnimation.Definiton="Some Encoded information to be used for creating Frames" />