[英]How to bind observablecollection to a textblock within a ListBox
我有綁定到列表的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的語法。
直接綁定屬性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
來決定如何在集合中顯示項目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.