鉴于下面的“部分”xaml:
<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>
My Converter类“StatusTypeNameToBrushConverter.cs”位于我上面声明的“converter”命名空间中。当我使用我的xmlns别名为静态资源添加前缀时,我仍然会收到警告
“Resrouce”StatusTypeNameToBrushConverter“无法找到”。
我添加到前缀/解析我的静态资源的代码如下所示。
Foreground="{Binding StatusTypeName, Converter={StaticResource converters:StatusTypeNameToBrushConverter}}"/>
为什么这是错误的,我需要添加什么来限定位置才能找到我的转换器?转换器代码旨在帮助转换由此xaml组成的视图。
感谢。
答案 0 :(得分:1)
您必须包括:
<UserColtrol.Resources>
<converters:StatusTypeNameToBrushConverter x:Key="statusTypeNameToBrushConverter"/>
</UserColtrol.Resources>
静态资源就是这样:
Foreground="{Binding StatusTypeName, Converter={StaticResource statusTypeNameToBrushConverter}}"/>
答案 1 :(得分: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}