对于以下xaml
<Window x:Class="StaticResourceBinding.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:staticResourceBinding="clr-namespace:StaticResourceBinding"
x:Name="Me" >
<Grid>
<Grid.Resources>
<staticResourceBinding:MultiConverter x:Key="MultiConverter" ></staticResourceBinding:MultiConverter>
</Grid.Resources>
<ContentControl>
<ContentControl.Content>
<MultiBinding Converter="{StaticResource MultiConverter}">
<Binding Source="SomeText"></Binding>
<Binding>
<Binding.Source>
<TextBlock Text="{Binding SecondText, ElementName=Me}" ></TextBlock>
</Binding.Source>
</Binding>
</MultiBinding>
</ContentControl.Content>
</ContentControl>
</Grid>
我收到此错误。
System.Windows.Data错误:4:无法找到带引用的绑定源&#39; ElementName = Me&#39;。 BindingExpression:路径= SecondText;的DataItem = NULL;目标元素是&#39; TextBlock&#39; (名称=&#39;&#39);目标属性是&#39; Text&#39; (键入&#39; String&#39;)
转换器只选择多重绑定的第一个值。
当我设置绑定到&#34; SecondText&#34;属性首先没有引发绑定异常。
我天真的假设是创建TextBlock控件但放在可视树之外导致它不能在树上找到&#34; Me&#34; - 元素。
这是对的吗?如何防止此绑定异常。
毋庸置疑,为了清晰起见,我保持这个例子简单(和愚蠢)。
答案 0 :(得分:0)
我想说尝试在XAML中的绑定外添加第二个文本框,然后绑定到text属性。
<MultiBinding Converter="{StaticResource MultiConverter}">
<Binding ElementName="FirstText" Path="Text"/>
<Binding ElementName="SecondText" Path="Text"/>
</MultiBinding>