如何在用户控件中实现转换器类

本文关键字:实现 转换器 控件 用户 | 更新日期: 2023-09-27 18:04:30

我想做一个转换器类,我实现了它,我想在另一个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>

错误是"名称titletoimgconverter在使用:policeApp的命名空间中不存在"

如何在用户控件中实现转换器类

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

这个问题的解决方案是重新构建整个项目。XAML现在应该能够定位您的转换器,错误应该会消失。

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