У меня есть ListView в моем XAML, и я пытаюсь подключить MultiBinding Converter.XAML Tool Tip Data Context и Multi Binding
<ListView
Grid.Column="4"
Grid.Row="1"
Grid.RowSpan="5"
Margin="8,0,8,8"
HorizontalAlignment="Stretch"
Name="lvDisplayType"
ItemsSource="{Binding Path=Types}"
SelectedItem="{Binding Path=Current.Opt}"
VerticalAlignment="Stretch"
SelectionChanged="lvType_SelectionChanged"
SelectionMode="Single"
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListView.ItemTemplate>
<DataTemplate>
<DockPanel
HorizontalAlignment="Center">
<TextBlock
Text="{Binding Path=., Converter={StaticResource DisplayConverter}}"
HorizontalAlignment="Center"
Padding="6"
VerticalAlignment="Center"
TextWrapping="Wrap">
<TextBlock.ToolTip>
<ToolTip DataContext="{Binding Path=Current}">
<MultiBinding Converter="{StaticResource OptConverter}">
<Binding Path="Opt" />
<Binding Path="Type" />
</MultiBinding>
</ToolTip>
</TextBlock.ToolTip>
</TextBlock>
</DockPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Код не работает это:
<TextBlock.ToolTip>
<ToolTip DataContext="{Binding Path=Current}">
<MultiBinding Converter="{StaticResource OptConverter}">
<Binding Path="Opt" />
<Binding Path="Type" />
</MultiBinding>
</ToolTip>
</TextBlock.ToolTip>
В настоящее время преобразователь возвращается в пустую строку как 'значений [0] == System.Windows.DependencyProperty.UnsetValue' и «значения [ 1] == System.Windows.DependencyProperty.UnsetValue 'return true. Эти значения никогда не устанавливаются.
Из-за логического дерева (я думаю) привязка по умолчанию TextBlock.ToolTip - Current.Opt. Для MultiBinding мне также нужно обратиться к «Тип», который является другим свойством «Текущий». Поэтому, чтобы обойти это, я установил «ToolTip DataContext =» {Binding Path = Current} »- это не работает должным образом - что я делаю неправильно?
Я знаю, что мог бы сделать это легко в коде позади, но мы используем MVVM, поэтому хотели бы избежать его, если это возможно.
Любая помощь очень ценится!
Спасибо
Спасибо за ваш ответ. Все еще не работает. Это должно быть связано с DataContext. Heres a Example: Элемент списка ListView - это «ItemsSource =» {Binding Path = Types} », далее далее у меня есть текст TextBlock как: Текст =" {Binding Path =.} "// This Works Текст = "{Binding Path = DisplayTypes}" // Это не: -/ Любые указатели? Большое спасибо –
Извините, это должно прочитать: Спасибо за ваш ответ. Все еще не работает. Это должно быть связано с DataContext. Вот пример: Мой источник элементов ListView - «ItemsSource =» {Binding Path = Types} », затем далее у меня есть TextBlock Text как: Text =" {Binding Path =.} "// This Works Text =" {Binding Path = Types} "// Это не означает: -/Любые указатели? Большое спасибо - –
На основе информации немного сложно сказать, я действительно не знаю, что еще происходит. Но когда я пытаюсь сделать это ItemsSource = "{Binding =.}", Я получаю значение "{Binding =.}" "Не является допустимым выражением MarkupExtension. Не удается решить 'Binding = .'... Вы должны просто использовать Text = «{Binding}» там, что означает, что вы привязываетесь непосредственно к своему DataContext, а не к нему. –