Значок отображается не для каждого ListBoxItem - PullRequest
0 голосов
/ 26 октября 2019

Мне нужно отобразить информационный значок для некоторых элементов ListBox.

Значок определяется как ViewBox в ресурсах приложения, и я использую DataTemplate в качестве ListBox ItemTemplate.

<Viewbox x:Key="InformationSymbol" Width="16" Height="16"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
    <Canvas Width="16" Height="16">
        <Path Fill="#00FFFFFF" Data="F1M16,16L0,16 0,0 16,0z" />
        <Path Fill="#FFF6F6F6" Data="F1M10,14L6,14 6,2 10,2z" />
        <Path Fill="#FF424242" Data="F1M9,3L7,3 7,5 9,5z M9,13L7,13 7,6 9,6z" />
    </Canvas>
</Viewbox>

<DataTemplate x:Key="MyDataTemplate">
    <!--main data here-->
    <ContentControl Content="{DynamicResource InformationSymbol}">
        <!--visibility trigger here-->
    </ContentControl>
</DataTemplate>

<ListBox ItemsSource="{Binding MyList}"
    ItemTemplate="{StaticResource MyDataTemplate}"/>

проблема в том, что значок отображается только для последнего элемента.

Я пытался заменить {DynamicResource InformationSymbol} статическим текстом, например, help, и он отображается для каждого элемента правильно. Таким образом, только значок ресурса не будет отображаться повторно.

Как сделать так, чтобы он отображался для нескольких элементов?

Обновление

ПозжеЯ пытался использовать ContentControl самостоятельно (из ListBox) несколько раз, как показано ниже, и это привело к тому, что только последний из них исчез.

<StackPanel>
    <ContentControl Content="{DynamicResource InformationSymbol}"/>
    <ContentControl Content="{DynamicResource InformationSymbol}"/>
</StackPanel>
...