WPF设计师问题:XDG0008名称“NumericTextBoxConvertor”在命名空间“clr-namespace:PulserTester.Convertors”中不存在。

31

我遇到了一个错误,导致我无法看到我的设计师,但是在构建方面没有错误,我的程序也可以正常运行,

我尝试过:

  • 清理和重新构建
  • 更新 Visual Studio
  • 修复 Visual Studio
  • 重启电脑

没有任何帮助。 我不知道还能做什么来解决它。

我尝试了这里的建议,在重新启动Visual Studio并重新构建解决方案之后依然没有用。

名称<...>不存在于clr-namespace <...>中的命名空间

这是我的错误:

enter image description here

这是 Xaml 文件:

<Window x:Class="PulserTester.windows.ConfigPage"
             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" 
             xmlns:local="clr-namespace:PulserTester.windows"
        xmlns:Convertors="clr-namespace:PulserTester.Convertors"
        mc:Ignorable="d" 
             d:DesignHeight="575.068" Width="500">
    <Window.Resources>
        <Convertors:NumericTextBoxConvertor x:Key="NumericTextBoxConvertor" />
    </Window.Resources>
    <Grid Background="White">
        <StackPanel>
            <StackPanel Margin="5">
                <TextBlock HorizontalAlignment="Right">שם הפולסר</TextBlock>
                <TextBox HorizontalAlignment="Right" MinWidth="100" Text="{Binding PulserName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"></TextBox>
            </StackPanel>

            <StackPanel Margin="5">
                <TextBlock HorizontalAlignment="Right">האם להציג הודעה במצב של כישלון</TextBlock>
                <CheckBox  HorizontalAlignment="Right" IsChecked="{Binding FailQuestion,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"></CheckBox>
            </StackPanel>

            <StackPanel Margin="5">
                <TextBlock HorizontalAlignment="Right">האם לאפשר בדיקת כיול</TextBlock>
                <CheckBox  HorizontalAlignment="Right" IsChecked="{Binding CalibrationOption,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"></CheckBox>
            </StackPanel>

            <StackPanel Margin="5">
                <TextBlock HorizontalAlignment="Right">סגנון הבדיקה</TextBlock>
                <ComboBox HorizontalAlignment="Right" Width="213"
                          ItemsSource="{Binding CheckStyles.Keys}"
                          SelectedItem="{Binding CheckStyleSelected,UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
                          ></ComboBox>
            </StackPanel>

            <StackPanel Margin="5">
                <TextBlock HorizontalAlignment="Right">מספר המפעל</TextBlock>
                <ComboBox HorizontalAlignment="Right" Width="213"
                          ItemsSource="{Binding FactoriesNumbers}"
                          SelectedItem="{Binding FactorySelected,UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
                          ></ComboBox>
            </StackPanel>

            <StackPanel Margin="5">
                <TextBlock HorizontalAlignment="Right">תדירות השמירה בבידקות</TextBlock>
                <TextBox HorizontalAlignment="Right" MinWidth="100" Text="{Binding SaveBatteryFreq,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged, Converter={StaticResource NumericTextBoxConvertor}}"></TextBox>
            </StackPanel>

            <StackPanel Margin="5">
                <TextBlock HorizontalAlignment="Right">לאפשר גבולות סטטסיטיים</TextBlock>
                <CheckBox  HorizontalAlignment="Right" IsChecked="{Binding AllowUsingStatistic, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"></CheckBox>
            </StackPanel>

            <StackPanel Margin="5">
                <TextBlock HorizontalAlignment="Right">מספר התאים לתחילת הסטטסיטיקה</TextBlock>
                <TextBox HorizontalAlignment="Right" MinWidth="100" Text="{Binding NumberOfCellToStartTheStatistics,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged, Converter={ StaticResource  NumericTextBoxConvertor}}"></TextBox>

            </StackPanel>

            <StackPanel Margin="5">
                <TextBlock HorizontalAlignment="Right">מספר התאים להתחול הסטטיסטיקה מחדש</TextBlock>
                <TextBox HorizontalAlignment="Right" MinWidth="100" Text="{Binding NumberOfCellToRestartTheStatistics,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged, Converter={ StaticResource  NumericTextBoxConvertor}}"></TextBox>
            </StackPanel>

            <StackPanel Margin="5">
                <Button Command="{Binding Path=SaveCommand}">bb</Button>
            </StackPanel>

           
        </StackPanel>
    </Grid>
</Window>

这是我的转换器:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Data;

namespace PulserTester.Convertors
{
    public class NumericTextBoxConvertor : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            return value.ToString();
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            string val = value.ToString();

            long ret = long.TryParse(new string(val.Where(char.IsDigit).ToArray()), out long result) ? result : 0;
            if (ret > int.MaxValue)
            {
                ret = int.MaxValue;
            }
            return ret;
        }
    }
}

16
如果那不起作用,关闭Visual Studio并删除解决方案目录中的“.vs”目录,然后再试一次。您可能需要显示隐藏文件才能看到它。有时设计师会卡在使用缓存数据上。 - Bradley Uffner
@vasily.sib 如果你的问题是他们在同一个项目中,那么是的。 - user8417115
@BradleyUffner 不起作用 :( - user8417115
好的,还有其他错误阻止项目构建吗?如果您删除关于此转换器的所有行,项目是否能够成功构建? - vasily.sib
"========== 重建全部:1 成功,0 失败,0 跳过 ==========" - user8417115
显示剩余20条评论
15个回答

62

4
我也遇到了XDG0008的问题,已经解决了。应该将其标记为答案。 - LaoR
感谢所有的点赞,但是这个功劳应该归功于 Bradley Uffner。 ;) - Fütemire
2
2020年8月更新 - 这是唯一解决我在VS2019设计器错误问题的方法。应该标记为已接受的答案。 - Sevenate
1
工作得很好,非常感谢@Bradley。这也适用于VS 16.8.0预览4。 - Davide Dolla
1
我遇到了同样的问题,我只需要进行重新构建即可。 - Leandro Paixão
从这个答案中:https://dev59.com/3lIH5IYBdhLWcg3wlv9v#66996221只需删除DesignTimeBuild子文件夹而不是整个.vs文件夹(对我有效)。 - b_levitt

6

我遇到了同样的问题。我尝试构建和重构我的解决方案,但都没有用。最后,我关闭了Visual Studio并重新打开它,问题解决了!


5

我在设计器视图模式下查看工作流程 xaml 时遇到了类似的问题。可以通过以下步骤解决:

  1. 关闭所有的 Visual Studio
  2. 删除隐藏的 .VS 文件夹
  3. 重新打开 Visual Studio
  4. 重新构建你的项目

4
你可以切换到另一个框架版本,然后再切换回你的版本,在我的情况下,我使用VS 16.4。我从框架4.6.2更改为4.7.2,然后再次切换回4.6.2。
这个简单的操作解决了我项目中的XDG0008和XDG0012问题。

2
我的环境是4.6.1。我切换到了4.7.2,编译通过了。感谢您在这里的评论,这个方法有效。 - JasonH

2

我解决了同样的问题。步骤如下:

  • 更新Visual Studio。
  • 关闭/打开它。
  • 重新构建。

1

过去,我通过像这样将实际的程序集名称添加到命名空间引用中来解决这个问题:

xmlns:windowManager="clr-namespace:PulserTester.Convertors;assembly=TheNameOfTheAssemblyWithoutExtension"

这在过去对我有效。

1
我通过删除文件夹.vs/$(SolutionName)/DesignTimeBuild来解决这个问题,这样我就可以保留VS的配置/资源管理器/选项卡,而不会丢失整个.vs文件夹。

0

我的Xaml问题在同一位置(没有转换器,以便清楚),它源于从OneNote中剪切和粘贴代码的不同XDG0000

由于某种原因,粘贴的文本在每个换行符处都带有隐藏字符(确切地说是NBWS)。通过删除控件之间的所有换行符并将控件属性放在一行上,例如从:

<TransformGroup>
    <ScaleTransform CenterX="0.5" 
                    CenterY="0.5" 
                    ScaleX="1.5" 
                    ScaleY="1.5"/>

</TransformGroup>

to

<TransformGroup>
    <ScaleTransform CenterX="0.5" CenterY="0.5" ScaleX="1.5" ScaleY="1.5"/>
</TransformGroup>

问题已解决。

我在这里提供一个替代方案,以解决在xaml页面的.Resources部分发现的通用问题。


0
我一直遇到这个问题,我的问题是我的UserControl文件中有一个事件,导致了错误X0008。
从我的UserControl中删除该Click事件,并在没有它的情况下编译,清除了错误。可能对于所有事件都是相同的,因为它们不能在UserControl Xaml文件中调用。
<UserControl x:Class="UIControls.MTRY_Button"

       ...

<Grid>
    <Button Content = "Click Me" Height = "23" 
     HorizontalAlignment = "Left" Margin = "96,88,0,0" Name = "button" 
     VerticalAlignment = "Top" Width = "75" **Click = "button_Click"** />
</Grid>

这是我在 YouTube 上找到解决方案的视频,大约在3:40时揭示出来: https://www.youtube.com/watch?v=lU4RuEXlUiU 在 WPF 或 UWP 中创建自己的用户控件 作者:CodeDocu 开发人员 C# Asp Net Angular


0

我遇到了同样的问题。我发现,控件所在的项目未包含在解决方案(.sln文件)中。 将该项目简单地添加到解决方案中即可解决该问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接