web-dev-qa-db-fra.com

C # avec des problèmes de concepteur WPF: XDG0008 Le nom "NumericTextBoxConvertor" n'existe pas dans l'espace de noms "clr-namespace: PulserTester.Convertors"

J'ai une erreur qui ne me laisse pas voir mon concepteur .. mais je n'ai aucune erreur sur une build et mon programme fonctionne bien sans problème

J'ai essayé de:

Nettoyer et reconstruire Mettre à jour Visual Studio Réparer Visual Studio Redémarrer mon PC

Rien n'y fait ... Je n'ai aucune idée de ce que je peux faire de plus pour le résoudre ...

Je dois essayer de voir ici et ne pas travailler pour moi même après avoir redémarré Visual Studio, reconstruit la solution le nom <...> n'existe pas dans l'espace de noms clr-namespace <...>

c'est mon erreur: enter image description here

c'est le fichier 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>

voici mon convertisseur:

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;
        }
    }
}
7
user8417115

Je veux juste réitérer une solution que @Bradley Uffner A mentionné enterrée dans les commentaires ci-dessus.

  1. Fermez Visual Studio
  2. Supprimez le dossier caché .VS
  3. Ouvrez Visual Studio et reconstruisez votre projet

Gardez à l'esprit qu'il s'agit d'une erreur très générique qui a plusieurs causes et solutions.Cela peut donc ne pas fonctionner pour vous, mais cela vaut vraiment le coup, car je sais que cela a fonctionné pour moi dans le passé à plusieurs reprises.

2
Fütemire

Vous pouvez passer à une autre version du framework, puis revenir à votre version, dans mon cas, j'utilise VS 16.4. Je suis passé du framework 4.6.2 à 4.7.2 puis suis revenu au 4.6.2.

Cette action simple résout XDG0008 et XDG0012 dans mon projet.

1
Juan Pablo Gomez

J'ai pu me débarrasser de ce problème dans le passé en ajoutant le nom réel de l'assembly à la référence de l'espace de noms comme ceci:

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

Cela avait fonctionné pour moi, par le passé.

0
Jonathan Alfaro

J'ai le même problème. J'ai trouvé que le projet avec le contrôle n'était pas inclus dans la solution (fichier .sln). L'ajout simple du projet à la solution résout le problème.

0
Lipotam