Чаще всего вы используете MultiBinding
без преобразователя, когда у вас есть строковый формат, объединяющий два отдельных значения.
сказать например:
Чтобы отформатировать имена, которые имеют первую и последнюю часть, и вы хотите отформатировать их в зависимости от локали
<StackPanel>
<TextBlock x:Name="firstName"
Text="John" />
<TextBlock x:Name="lastName"
Text="Wayne" />
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} {1}">
<Binding ElementName="firstName"
Path="Text" />
<Binding ElementName="lastName"
Path="Text" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
Вы видите довольно много мест, где вы используете конвертер, поскольку с помощью MultiBinding
вы делаете то же самое, что и Binding
, но у вас есть несколько исходных значений, отформатированных в один результат, а не один ввод -> один вывод.
Вы можете заставить Binding принимать ConverterParameter
для предоставления другого входного значения, однако у вас есть ограничения, такие как невозможность предоставить ему значение Bound во время выполнения, что делает MultiBinding
более подходящим для нескольких входов, где вы хотите связать их все.
Это сводится к вашему варианту использования. Если вы хотите предоставить результат на основе различных типов ввода, которые вы оцениваете по-своему, вам нужен конвертер (очень похожий на привязку. Просто подумайте о разнице как о 1 входной привязке -able значение против нескольких)
person
Viv
schedule
02.04.2013