2013-07-14 130 views
0

我尝试实现IValueConverter类并将其映射为xaml文件中的资源。在某种原因,即时获得永诺错误“的名称类型转换器不会在命名CLR的命名空间中:MyApp的”IValueConverter资源,命名空间问题

但我找不到什么问题出现,我的转换器类已命名空间设定正确等。

我的XML文件

<phone:PhoneApplicationPage 
    x:Class="MyApp.Page" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" 
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:local="clr-namespace:MyApp" 
    FontFamily="{StaticResource PhoneFontFamilyNormal}" 
    FontSize="{StaticResource PhoneFontSizeNormal}" 
    Foreground="{StaticResource PhoneForegroundBrush}" 
    SupportedOrientations="Portrait" Orientation="Portrait" 
    mc:Ignorable="d" 
    shell:SystemTray.IsVisible="True"> 

... 

<ListBox ItemsSource="{Binding items}" ScrollViewer.VerticalScrollBarVisibility="Disabled"> 

    <ListBox.Resources> 
     <local:TypeConverter x:Name="TypeConverter"/> 
    </ListBox.Resources> 

    <ListBox.ItemsPanel> 
     <ItemsPanelTemplate> 
      <StackPanel Orientation="Horizontal" /> 
     </ItemsPanelTemplate> 
    </ListBox.ItemsPanel> 

    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding type, Converter={StaticResource TypeConverter}}" Margin="0,0,12,0" /> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 

</ListBox> 

我的转换器类

namespace MyApp 
{ 
    public class TypeConverter: IValueConverter 
    { 

     public object Convert(object value, Type targetType, object parameter, String culture) 
     { 
      return "-"; 
     } 

     public object ConvertBack(object value, Type targetType, object parameter, String culture) 
     { 
      return null; 
     } 
    } 
} 
+0

错误出现在设计器或编译时? –

回答

0

发现问题我自己,转换方法有错误的参数,需要是:

public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 

修复此问题时,编译器(和)设计器不再提供命名空间错误。