.net 使用xmlns时出现编译器错误:src
在上获取编译器错误 src:FieldDefUsrFldUsrs 错误8 XML命名空间“clr命名空间:Gabe2a”中不存在标记“FieldDefUsrFldUsrs”。第14行第10位。C:\My Dev\CommonSource\Gabriel\Gabe2a\Gabe2Acollection\Gabe2aI55\PageSearchFieldUsrFld.xaml 14 10 Gabe2a 如何修复此错误.net 使用xmlns时出现编译器错误:src,.net,wpf,binding,treeview,.net,Wpf,Binding,Treeview,在上获取编译器错误 src:FieldDefUsrFldUsrs 错误8 XML命名空间“clr命名空间:Gabe2a”中不存在标记“FieldDefUsrFldUsrs”。第14行第10位。C:\My Dev\CommonSource\Gabriel\Gabe2a\Gabe2Acollection\Gabe2aI55\PageSearchFieldUsrFld.xaml 14 10 Gabe2a 如何修复此错误 <Page x:Class="Gabe2a.PageSearchFieldU
<Page x:Class="Gabe2a.PageSearchFieldUsrFld"
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"
d:DesignHeight="300" d:DesignWidth="300"
DataContext="{Binding RelativeSource={RelativeSource self}}"
xmlns:local="clr-namespace:Gabe2a"
xmlns:src="clr-namespace:Gabe2a"
ShowsNavigationUI="False"
Title="PageSearchFieldUsrFld">
<Page.Resources>
<src:FieldDefUsrFldUsrs x:Key="MyList"/>
<HierarchicalDataTemplate DataType = "{x:Type src:League}"
ItemsSource = "{Binding Path=Divisions}">
<TextBlock Text="{Binding Path=Name}"/>
</HierarchicalDataTemplate>
namespace Gabe2a
{
public partial class PageSearchFieldUsrFld : Page
{
private List<GabeLib.FieldDefUsrFldUsr> fieldDefUsrFldUsrs = new List<GabeLib.FieldDefUsrFldUsr>();
public List<GabeLib.FieldDefUsrFldUsr> FieldDefUsrFldUsrs { get { return fieldDefUsrFldUsrs; } }
namespace Gabe2a {
public class GabeLib : INotifyPropertyChanged
{
[Serializable()]
public class FieldDefUsrFldUsr
{
名称空间Gabe2a
{
公共部分类PageSearchFieldUsrFld:第页
{
私有列表字段defusrfldusrs=新列表();
公共列表FieldDefUsrFldUsrs{get{return FieldDefUsrFldUsrs;}}
名称空间Gabe2a{
公共类GabeLib:InotifyProperty已更改
{
[可序列化()]
公共类FieldDefUsrFldUsr
{
您尝试在XAML中实例化嵌套类,但在WPF中仍然没有。有关问题和MSDN链接的详细信息,请参阅,该链接说明了XAML中要使用的自定义类的规则:
自定义类不能是嵌套类。嵌套类及其常规CLR用法语法中的“点”会干扰其他WPF和/或XAML功能,如附加属性
这对于框架版本4.5仍然是相关的
至于如何避免这种情况……您使用嵌套类有什么真正的原因吗?对于项目组织来说,仅使用点式名称空间通常就足够了:
namespace Gabe2a.GabeLib
{
public class GabeLib : INotifyPropertyChanged
{}
[Serializable()]
public class FieldDefUsrFldUsr
{}
}
因此,您似乎无法在XAML中实例化嵌套类,但仍然可以在
DataTemplates
等中使用它,而无需更改当前的类结构:
<DataTemplate DataType="{x:Type local:GabeLib+FieldDefUsrFldUsr}">
...
</DataTemplate>
...
您的FieldDefUsrFldUsr
似乎不在Gabe2a
命名空间中。或者它是一个嵌套类?我发布了FieldDefUsrFldUsr的定义。private List没有抛出对我无效的错误。我最终在命名空间级别添加了一个接口。