/ / Грешка при свързване на мулти свързване - 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: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.Грешка в данните: 4: Не може да се намери източник за свързване с референция "ElementName = Me". BindingExpression: Path = SecondText; DataItem = нула; целевият елемент е "TextBlock" (Name = ""); целевата собственост е "Text" (тип "String")

Преобразувателят просто избира първата стойност на мулти-свързването.

Когато задавам обвързването, което се свързва с "SecondText", първо не се изхвърля задължително изключение.

Моето наивно предположение би било, че контролът на TextBlock е създаден, но е изваден от визуалното дърво, което го кара да не открие "мен" - елемент на дървото.

Дали това е правилно? И как мога да предотвратя това обвързващо изключение.

Излишно е да казвам, че този пример е бил прост (и глупав) за яснота.

Отговори:

0 за отговор № 1

Бих казал, че опитайте да добавите второто текстово поле извън връзката във вашия XAML, след което се свържете с текстовата собственост.

        <MultiBinding Converter="{StaticResource MultiConverter}">
<Binding ElementName="FirstText" Path="Text"/>
<Binding ElementName="SecondText" Path="Text"/>
</MultiBinding>