不能在XAML中定义对象
本文关键字:定义 对象 XAML 不能 | 更新日期: 2023-09-27 18:08:54
我有一个用户控件。在此控件的XAML标记中,我想定义一个资源(实例化类CellColorConverter
的一个名为cellColorConverter
的对象),该对象定义在与控件相同的名称空间中。我有
<UserControl x:Class="ResourceStudio.Resource.Resource"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d" Height="331.2" Width="340">
<UserControl.Resources>
<ResourceStudio.Resource:CellColorConverter x:Key ="cellColorConverter"/> // <- Error.
</UserControl.Resources>
这会给出一个编译时错误,说
未定义命名空间前缀
ResourceStudio.Res
。
我这里做错了什么?
感谢您的宝贵时间。
更新:我现在有
xmlns:local="clr-namespace:ResourceStudio.Resource;assembly=ResourceStudio"
mc:Ignorable="d" Height="331.2" Width="340">
<UserControl.Resources>
<local:CellColorConverter x:Key ="cellColorConverter"/>
</UserControl.Resources>
CellColorConverter
类位于名称空间ResourceStudio.Resource
中,定义为
namespace ResourceStudio.Resource
{
public class CellColorConverter : IMultiValueConverter
{
// ...
}
}
我仍然得到以下错误
名称"CellColorConverter"在命名空间"clr-namespace:ResourceStudio. resource;assembly=ResourceStudio"中不存在。F: '加缪' ResourceStudio ' ResourceStudio ' ResourceStudio '资源' Resource.xaml
中:
<ResourceStudio.Resource:CellColorConverter />
ResourceStudio.Resource
是CellColorConverter
的XML命名空间。
你需要将这个XML命名空间映射到。net命名空间:
<UserControl xmlns:ResourceStudio.Resource="clr-namespace:ResourceStudio.Resource;assembly=ResourceStudio" ... />
实际的名称空间和程序集名称取决于您在代码中如何调用它们。
这篇文章提供了更多的信息。
还可以使名称空间更短:
xmlns:local="clr-namespace:..."
<local:CellColorConverter ... >