WPF TextBox.Text с MultiBinding - PullRequest
       35

WPF TextBox.Text с MultiBinding

8 голосов
/ 02 февраля 2010

У меня есть пользовательский элемент управления с TextBox в шаблоне по умолчанию. Пользовательский элемент управления имеет следующие 2 свойства зависимости (среди прочих):

SelectedValue, NullText (текст, который появляется в TextBox, когда ничего не выделено и значение указано)

Я бы хотел установить TextBox.Text со значением NullText , если SelectedValue равно нулю, а NullText не равно нулю.

<TextBox.Text>                                              
 <MultiBinding Converter="{StaticResource myConverter}">
   <Binding RelativeSource="TemplatedParent" Path="SelectedValue"/>
   <Binding RelativeSource="TemplatedParent" Path="NullText"/>
 </MultiBinding>                                              
</TextBox.Text>

У меня есть IMultiValueConverter:

public class MyConverter : IMultiValueConverter
{}

С этим определением XAML, которое я получил, у типа нет открытого класса TypeConverter. Исключение

Как бы вы решили это, пожалуйста?

1 Ответ

22 голосов
/ 02 февраля 2010

Я нашел РЕШЕНИЕ самостоятельно: проблема была с RelativeSource.Вот как это должно выглядеть:

<TextBox.Text>                                              
 <MultiBinding Converter="{StaticResource myConverter}">
   <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="SelectedValue"/>
   <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="NullText"/>
 </MultiBinding>                                              
</TextBox.Text>
...