![](/img/trans.png)
[英]Can't get rid of ErrorProvider message in Visual Studio 2022
[英]Get rid of Visual Studio Namespace error message
不幸的是,這是一個非常初學者的問題:
我正在做非常簡單的WPF教程,並且遇到了名稱空間問題。 我想根據教程對自定義對象進行簡單的分層樹視圖綁定。 我將對象放入自定義名稱空間“ MyNameSpace”,並在XAML中聲明了該名稱(xmlns:MyTree =“ clr-namespace:MyNameSpace”)。 我相信我不需要指定程序集,因為我只是在我的項目中而無需任何進一步的參考(新的和干凈的項目)。
我現在遇到的問題是,編譯器在以下位置給我一個錯誤
<HierarchicalDataTemplate DataType="{x:Type MyTree:MenuItemNew}"
與消息
名稱“ MenuItemNew”在名稱空間“ clr-namespace:MyNameSpace”中不存在
但是它確實存在! 並且它甚至可以編譯並正確啟動程序。 但是,由於“無效標記”,我再也看不到布局。
那么如何告訴XAML接受我的名稱空間? 還是解決此問題的最佳方法是什么?
這是XAML:
<Window x:Class="TreeViewTestC.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:MyTree="clr-namespace:MyNameSpace"
Title="MainWindow" Height="350" Width="525">
<Grid Margin="10">
<TreeView Name="trvMenu">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type MyTree:MenuItemNew}" ItemsSource="{Binding Items}">
<TextBlock Text="{Binding Title}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</Grid>
</Window>
這是我的MainWindow代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.IO;
using System.Collections.ObjectModel;
using MyNameSpace;
namespace TreeViewTestC
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
MenuItemNew root = new MenuItemNew() { Title = "Menu1" };
MenuItemNew childItem1 = new MenuItemNew() { Title = "Child item #1" };
childItem1.Items.Add(new MenuItemNew() { Title = "Child item #1.1" });
childItem1.Items.Add(new MenuItemNew() { Title = "Child item #1.2" });
root.Items.Add(childItem1);
root.Items.Add(new MenuItemNew() { Title = "Child item #2" });
trvMenu.Items.Add(root);
}
}
}
namespace MyNameSpace
{
public class MenuItemNew
{
public MenuItemNew()
{
this.Items = new ObservableCollection<MenuItemNew>();
}
public string Title { get; set; }
public ObservableCollection<MenuItemNew> Items { get; set; }
}
}
在我看來,您的主要應用程序名稱空間是TreeViewTestC
而不是 MyNameSpace
。 因此,即使您只有一個項目,也可能需要告訴編譯器您的MyNameSpace
實際上在TreeViewTestC
程序MyNameSpace
。 嘗試使用此代替:
xmlns:MyTree="clr-namespace:MyNameSpace;assembly=TreeViewTestC"
好的,我找到了解決方案。 該項目在網絡驅動器上。 將其移動到本地文件夾可以解決問題……伙計,真是一團糟。 這花了我很多時間,我需要網絡驅動器。
更多信息: 名稱空間“ clr-namespace:ABC”中不存在名稱“ XYZ”
非常感謝你的幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.