2013-03-12 43 views
2

鉴于“部分”的XAML:无法找到带有xmlns前缀的StaticResource?

<UserControl x:Class="MyProject.Views.SelectTestView" 
      xmlns="http://schemas.microsoft.com etc... etc..." 
      xmlns:converters="clr-namespace:MyProject.Converters" 
      mc:Ignorable="d" 
      d:DesignHeight="566" d:DesignWidth="1160"> 

<GridViewColumn Header="Status" Width="auto"> 
    <GridViewColumn.CellTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding StatusTypeName}" 
         Foreground="{Binding StatusTypeName, Converter={StaticResource StatusTypeNameToBrushConverter}}"/> 
     </DataTemplate> 
    </GridViewColumn.CellTemplate> 
</GridViewColumn> 

我Converter类“StatusTypeNameToBrushConverter.cs”是我上面说过我是“转换器”的命名空间。当我用我的xmlns别名为静态资源添加前缀时,我仍然收到警告

“Resrouce”StatusTypeNameToBrushConverter“can not be found”。

我添加到前缀/解析我的静态资源的代码如下所示。

Foreground="{Binding StatusTypeName, Converter={StaticResource converters:StatusTypeNameToBrushConverter}}"/> 

为什么这个错误,我需要添加什么来限定位置,以便我的转换器可以找到?转换器代码旨在帮助转换由此xaml组成的视图。

谢谢。

+0

我发现你所做的编辑,Soner,在不到一分钟,但你就已经在我发布后的54秒内跳上它!你有多快!? – 2013-03-12 15:57:27

回答

1

必须包括:

<UserColtrol.Resources> 
    <converters:StatusTypeNameToBrushConverter x:Key="statusTypeNameToBrushConverter"/> 
</UserColtrol.Resources> 

和静态资源是这样的:

Foreground="{Binding StatusTypeName, Converter={StaticResource statusTypeNameToBrushConverter}}"/> 
1

你引用的StaticResource,但你还没有定义的。 你可以这样说:

<UserControl x:Class="MyProject.Views.SelectTestView" 
      xmlns="http://schemas.microsoft.com etc... etc..." 
      xmlns:converters="clr-namespace:MyProject.Converters" 
      mc:Ignorable="d" 
      d:DesignHeight="566" d:DesignWidth="1160"> 
<UserControl.Resources> 
     <ResourceDictionary> 
      <converters:StatusTypeNameToBrushConverter x:Key="StatusTypeNameToBrushConverter" /> 
     </ResourceDictionary> 
    </UserControl.Resources> 

,然后你使用它像你这样第一次:

Converter={StaticResource StatusTypeNameToBrushConverter} 
+0

那么ResrouceDictionary是否允许您添加多个StaticResources? – 2013-03-12 16:22:05

+0

@IsaiahNelson是的。顺便说一句,我已经在15分钟前回答了这个问题:) FarhadJabiyev – 2013-03-12 16:24:35

+0

@FarhadJabiyev的确,你做到了,这就是为什么你会得到接受的答案。在此刻的一次会议上,我在这里关注我的问题有点慢。我很欣赏你通过答案的权宜之计。 – 2013-03-12 16:26:40

相关问题