我有绑定到列表的ListBox。在列表中,我有一个名为“ AttributePath”的可观察集合。我正在努力的是如何将Textblock(用作工具提示)绑定到ObservableCollection“ AttributePath”。这是xmal-
<ListBox
Name="lstCandidates"
ItemsSource="{Binding Path=UIProperties.CandidateAttributes}"
SelectionMode="Extended"
VirtualizingStackPanel.IsVirtualizing="True"
VirtualizingStackPanel.VirtualizationMode="Recycling"
>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Path=DisplayName}"/>
<StackPanel.ToolTip>
<StackPanel>
<TextBlock Text="{Binding UIProperties.CandidateAttributes.AttributePath}" />
<StackPanel Orientation="Horizontal">
<TextBlock Text="Last updated: "/>
</StackPanel>
</StackPanel>
</StackPanel.ToolTip>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
失败的地方是带有{Binding UIProperties.CandidateAttributes.AttributePath}的行。只是不确定为文本块设置itemsource的语法。
答案 0 :(得分:0)
直接绑定属性AttributePath
:
<StackPanel.ToolTip>
<StackPanel>
<TextBlock Text="{Binding AttributePath}" />
<StackPanel Orientation="Horizontal">
<TextBlock Text="Last updated: "/>
</StackPanel>
</StackPanel>
</StackPanel.ToolTip>
但是,如果AttributePath是集合,则可以使用ItemsControl来显示它:
<StackPanel.ToolTip>
<StackPanel>
<ItemsControl ItemsSource="{Binding AttributePath}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Last updated: "/>
</StackPanel>
</StackPanel>
</StackPanel.ToolTip>
您还可以设置适当的ItemTemplate
来决定如何在集合中显示项目。