C# 多重绑定上的绑定错误
对于以下xamlC# 多重绑定上的绑定错误,c#,wpf,xaml,C#,Wpf,Xaml,对于以下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:StaticResou
<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:找不到引用为“ElementName=Me”的绑定源。BindingExpression:Path=SecondText;DataItem=null;目标元素为“TextBlock”(名称=“”);目标属性为“Text”(类型为“String”)
转换器只拾取多重绑定的第一个值
当我首先设置绑定到“SecondText”属性的绑定时,不会引发绑定异常
我天真的假设是,TextBlock控件是创建的,但放在可视化树之外,导致它不是树上的find the“Me”元素
这是正确的吗?如何防止这种绑定异常
不用说,为了清晰起见,我保持了这个示例的简单性(和愚蠢性)。我会说,尝试在XAML的绑定之外添加第二个文本框,然后绑定到text属性
<MultiBinding Converter="{StaticResource MultiConverter}">
<Binding ElementName="FirstText" Path="Text"/>
<Binding ElementName="SecondText" Path="Text"/>
</MultiBinding>
您在这里想要实现什么?为什么要在BindingSource中放置TextBlock?为什么不直接指定SecondText作为绑定的路径?SomeText位于何处?整个故事是这样的:我想要一个具有可设置属性的主用户控件(反过来是一个usercontrol),让我们称之为backgroundControl。如果这个属性为null,我想使用一个默认用户控件,它使用主用户控件上的另一个属性,该属性定义默认控件的外观。除了设置backgroundControl(非null)时我得到声明的异常外,其他一切都正常。绑定异常发生在默认控件的绑定上。这不是我想要的。请看我对这个问题的评论。