2013-07-11 16 views
16

Come suggerisce il titolo, questo errore viene generato dal progettista, il che significa che il progettista non può visualizzare correttamente il mio UserControl che a sua volta significa che non posso navigare senza problemi da elemento a elemento in questo UserControl per apportare modifiche. Davvero fastidioso.WPF: VS2012 progettista mostra "La componente 'XXX' non ha una risorsa identificata dal URI YYY"

XXX è il nome della mia UserControl, mentre il YYY URI è in realtà il percorso di XXX. Quindi non so capire che non può trovare se stesso come risorsa. Ho cercato su Google questo errore, ma la maggior parte di essi è avvenuta nel runtime. Nel mio caso non succede affatto quando lo eseguo. La descrizione di questo errore non è in realtà abbastanza esplicativa, perché non sono sicuro di chi nel CLR sta caricando il file stesso come una risorsa.

Un'altra cosa che vale la pena menzionare è che questo errore si verifica solo dopo aver compilato il mio progetto di applicazione, in cui si trova l'errore UserControl. Dopo aver fatto clic per pulire il progetto, il progettista può visualizzare l'intera roba (ma ovviamente posso pulire il progetto ogni volta prima di apportare modifiche, poiché l'edificio richiede tempo)

+1

Stesso problema qui - grazie per la nota sulla pulizia del progetto. – mola

+0

Ricevo questo comportamento in modo specifico con i controlli utente all'interno di altri controlli utente. Il controllo genitore eseguirà il rendering nel designer, ma gli altri genereranno l'eccezione. Sto usando i controlli DevEx WPF. Anche la pulizia del progetto funziona per me. – Erikest

risposta

15

È possibile che il file .g.cs o .gics del controllo sia stato danneggiato. Prova a pulire, chiudere Visual Studio e riavviarlo. Penso che ciò mi abbia aiutato in diversi casi, specialmente quando copio i controlli Incolla da una soluzione all'altra.

0

Ho incontrato lo stesso problema, compilato e ha funzionato benissimo, ma l'editor di XAML/progettista lamentato. Nel mio caso, ho trovato la soluzione per il fatto che il mio controllo utente è stato dichiarato all'interno di uno spazio dei nomi in XAML (x: Class = "myNamespace.myUserControl") ma non nel codice sottostante. L'aggiunta della dichiarazione dello spazio dei nomi nel codice ha risolto il mio problema.

1

Se si refactoring un UserControl giù un progetto di livello più basso che l'UserControl è stato precedentemente riferendo poi si vedrà questo errore.

La rimozione del riferimento all'assembly dallo spazio dei nomi risolve il problema.

<UserControl xmlns:ui="clr-namespace:MyCompany.Core.UI;assembly=MyCompany.Core.UI" 

dovrebbe essere

<UserControl xmlns:ui="clr-namespace:MyCompany.Core.UI" 

il progettista non è abbastanza intelligente per evidenziare questo.

0

Per visualizzare l'UserControl, il progettista deve creare un'istanza del controllo utente. Cercare eventuali eccezioni di riferimento Null.

Nel mio caso il controllo utente aveva un NRE causa di una dipendenza non iniettata. Ho aggiunto la gestione per NRE e nessun problema in più.

7

basta eliminare le sottocartelle in

%LOCALAPPDATA%\Microsoft\VisualStudio\12.0\Designer\ShadowCache

+0

Questo ha funzionato per me! – Pythonizo

Problemi correlati