Значение типа «Стиль» нельзя добавить в коллекцию или словарь типа «UIElementCollection».

1

У меня есть следующий код XAML. Мне нужны альтернативные строки в моем списке, которые будут заполняться динамически, хотя код во время выполнения. Я использую следующий код XAML, но он дает ошибку с именем Error8. Значение типа "Стиль" не может быть добавлено в коллекцию или словарь типа "UIElementCollection".

 <ListView Grid.Column="1" Grid.Row="10" BorderBrush="#FFA8CC7B" Height="133" HorizontalAlignment="Left" Margin="0,0,0,93" Name="lstViewAppsList" VerticalAlignment="Top" Width="596"
              ItemContainerStyle="{StaticResource alternatingStyle}" AlternationCount="2">
        <ListView.View>
            <GridView>
                <GridViewColumn  Header="Apps" Width="150" />
                <GridViewColumn  Header="Package" Width="350" />
            </GridView>
        </ListView.View>
    </ListView>

    <Style x:Key="alternatingStyle" TargetType="{x:Type ListViewItem}">
        <Style.Triggers>
            <Trigger Property="ItemsControl.AlternationIndex" Value="0">
                <Setter Property="BValue="LightSkyBlue"></Setter>
            </Trigger>
            <Trigger Property="ItemsControl.AlternationIndex" Value="1">
                <Setter Property="Background" Value="LightGray"></Setter>
            </Trigger>
            <Trigger Property="IsSelected" Value="True">
                <Setter Property="Background" Value="Orange"/>
            </Trigger>
        </Style.Triggers>
    </Style>
  • 1
    У тебя есть хотя бы одна опечатка. Даже после того, как вы переместите стиль в правильное местоположение, у вас будет проблема с первым триггером.
  • 0
    Как добавить его в словарь ресурсов? Нужно ли создавать отдельный файл?
Теги:
xaml
wpf

2 ответа

4

Он должен быть в ResourceDictionary некоторого рода, вы можете добавить в ListView или Window/Page или даже внешний файл ресурсов

<ListView.Resources>
   <Style x:Key="alternatingStyle" TargetType="{x:Type ListViewItem}">
       ......
   </Style>
<ListView.Resources>

Поэтому, чтобы добавить его к вашему примеру выше

<ListView Grid.Column="1" Grid.Row="10" BorderBrush="#FFA8CC7B" Height="133" HorizontalAlignment="Left" Margin="0,0,0,93" Name="lstViewAppsList" VerticalAlignment="Top" Width="596" AlternationCount="2">
    <ListView.Resources>
       <Style TargetType="{x:Type ListViewItem}">
           ......
       </Style>
    <ListView.Resources>
     <ListView.View>
         <GridView>
             <GridViewColumn  Header="Apps" Width="150" />
             <GridViewColumn  Header="Package" Width="350" />
         </GridView>
     </ListView.View>
</ListView>
  • 0
    Как добавить словарь ресурсов?
  • 0
    добавлен лучший пример выше
Показать ещё 2 комментария
1

Вы должны поместить этот стиль в ResourceDictionary. Если вы используете, поместите стиль следующим образом:

<Window.Resources>
<Style x:Key="alternatingStyle" TargetType="{x:Type ListViewItem}">
</Style>
</Window.Resources>

С уважением, Риядж Ахмед I

Ещё вопросы

Сообщество Overcoder
Наверх
Меню