带有MultiBinding的WPF TextBox.Text

时间:2010-02-02 15:26:27

标签: wpf textbox triggers controltemplate multitrigger

我在默认模板中使用TextBox进行自定义控制。 自定义控件具有以下2个依赖项属性:

SelectedValue,NullText(当没有选择任何内容并提供值时,文本将显示在TextBox中)

SelectedValue null为NullText非空时,我想设置带有NullText 值的TextBox.Text。

<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 个答案:

答案 0 :(得分:22)

我自己找到了解决方案: 问题在于RelativeSource。 这就是它应该是这样的:

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