Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多重绑定上的绑定错误_C#_Wpf_Xaml - Fatal编程技术网

C# 多重绑定上的绑定错误

C# 多重绑定上的绑定错误,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

对于以下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:找不到引用为“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)时我得到声明的异常外,其他一切都正常。绑定异常发生在默认控件的绑定上。这不是我想要的。请看我对这个问题的评论。