簡體   English   中英

如何將ObservableCollection綁定到ListBox中的文本塊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM