如何在usercontrol中实现转换器类

时间:2014-05-22 09:04:37

标签: c# microsoft-metro windows-8.1

我想创建一个转换器类,我实现了它,我想在另一个xaml类中使用它 所以我写这段代码

<UserControl 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:PoliceApp"
    xmlns:common="using:PoliceApp.Common"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

        <UserControl.Resources>
            <local:TitleToImgConverter x:Key="BoolOrConverter"/>
        </UserControl.Resources>
    </UserControl>

它告诉我用户控件缺少属性

我的第一个代码是

DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:PoliceApp"
    xmlns:common="using:PoliceApp.Common"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

        <UserControl.Resources>
            <local:TitleToImgConverter x:Key="BoolOrConverter"/>
        </UserControl.Resources>

错误是&#34;名称titletoimgconverter在命名空间中不存在:policeApp&#34;

1 个答案:

答案 0 :(得分:1)

当您刚刚创建了一个新的转换器并将其作为XAML代码中的资源添加时,这是正常的(至少,我从未见过它)。当某些内容添加到命名空间时,XAML代码通常会落后。

解决方案是重建整个项目。 XAML现在应该能够找到您的转换器,错误应该消失。

<强>更新 如果您的转换器位于名为Converter的某个文件夹中,则应使用第一个示例,并将xmlns:local="using:PoliceApp"替换为xmlns:local="clr-namespace:PoliceApp.Converter"。如果它只是位于您的主文件夹中,您可以省略.Converter。请注意,我已将using:替换为clr-namespace: