无法使用Window.Resources中定义的资源

时间:2017-03-10 14:46:40

标签: c# wpf

我有一个带窗口的WPF项目。我已经为该窗口的资源添加了一个样式,我正在尝试在组件上使用该样式,但是找不到该资源!

我相信语法是尽可能基本的,也和我在网上看到的众多例子一样:

<Window x:Class="MyView"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Window.Resources>
        <Style x:Name="ComponentsListItem" TargetType="{x:Type ListViewItem}">
            <!-- Some styles -->            
        </Style>
    </Window.Resources>
    <Grid>
        <ListView ItemContainerStyle="{StaticResource ComponentsListItem}" />
    </Grid>
</Window>

当我正在编译时,我在{StaticResource ComponentsListItem}上收到了

的错误
  

无法解析资源“ComponentsListItem”

我还尝试将样式放入<ResourceDictionary>,使其看起来像这样:

<Window.Resources>
    <ResourceDictionary>
        <Style x:Name="ComponentsListItem" TargetType="{x:Type ListViewItem}">
            <!-- Some styles -->            
        </Style>
    </ResourceDictionary>
</Window.Resources>

但是,它在完全相同的地方提供完全相同的错误消息。

这里发生了什么?为什么我不能使用ComponentsListItem

1 个答案:

答案 0 :(得分:4)

  

为什么我不能使用ComponentsListItem

那是因为您使用的是x:Name,但使用x:Key定义了样式。

使用它,它将正常工作

<Style x:Key="ComponentsListItem" TargetType="{x:Type ListViewItem}">
    <!-- Some styles -->            
</Style>