Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 使用xmlns时出现编译器错误:src_.net_Wpf_Binding_Treeview - Fatal编程技术网

.net 使用xmlns时出现编译器错误:src

.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

在上获取编译器错误

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.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没有抛出对我无效的错误。我最终在命名空间级别添加了一个接口。