WPF TextBox.Text与MultiBinding

9

我有一个自定义控件,在默认模板中包含文本框。

该自定义控件有以下两个依赖属性(以及其他属性):

SelectedValue(选定的值)、NullText(当未选择任何内容且提供了值时,文本框中显示的文本)

SelectedValue 为null且 NullText 不为null时,我希望使用 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类”的异常。请问您如何解决这个问题?

抱歉,我没有意识到你实际上是在发布一个答案,我以为你只是在更新问题(取消踩)。 - Natrium
好的 :) 那我现在该做什么?因为问题还没有解决。 - theSpyCry
不要将您的解决方案作为编辑发布,而是将其作为答案发布,并将其标记为答案。 - Eric Dahlvang
1个回答

25

我自己找到了解决方法: 问题出在RelativeSource上。 正确的写法应该是:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接