3 Stimmen

Fehler beim Festlegen der Eigenschaft Name einer lokalen Klasse in der WPF-DesignData-Datei

Ich habe diese DesignData-Datei (Kompilierungstyp auf DesignData eingestellt) in einer XAML-Datei:

<local:FooModel xmlns:local="clr-namespace:MyProject" 
    Name="Sample" FullPath="C:/www" />

Ich habe FooModel Klasse innerhalb MyProject Namespace mit diesen beiden Eigenschaften. Ich erhalte die Eigenschaft "Name" in XAML mit rot unterstrichen und diese Meldung:

Fehler 1 Da 'microsoft.expression.markup.semantics.metadata.reflectiontypenode' in derselben in der gleichen Assembly implementiert ist, müssen Sie das Attribut x:Name und nicht das microsoft.expression.markup.semantics.metadata.ReflectionPropertyNode Attribut setzen.

Ich denke, die Immobilie Name mit etwas anderem verwechselt wird. Ich beziehe mich auf die Eigenschaft meiner FooModel Klasse, nicht etwas anderes. Ich erhalte keine Warnungen für FullPath .

2voto

Uri Punkte 10307

Dies kann nicht reproduziert werden. Habe eine ähnliche DesignData-Datei, ohne Probleme überhaupt, einschließlich einer Eigenschaft "Name". Sehr Sie haben nicht einen Tippfehler. Stellen Sie sicher, dass "Custom Tool" und "Custom Tool Namespace" leer sind. Ich vermute auch, dass Sie eine seltsame Baugruppe in Ihrer 'References'-Liste haben. Woher haben Sie die MS.Internal.Design... ? (wurde das Projekt in Blend erstellt?). In einem standardmäßig mit VS erstellten Projekt erscheint dieser Namespace in keiner meiner Assemblies. Prüfen Sie, welche Assembly diesen Namespace implementiert, und versuchen Sie, ihn aus der Liste der Referenzen zu entfernen.

0voto

lirkki Punkte 211

Ich bin auf denselben Fehler gestoßen. Der Fehler verschwindet für eine Weile, nachdem ich die Lösung neu erstellt habe, aber er tritt wieder auf, wenn ich die entsprechende DesignData-Datei in Visual Studio (VS Professional, Version 11.0.51106.01 Update 1) öffne.

Ich habe versucht, referenzierte Baugruppen zu entfernen und die Werte für "Custom Tool" und "Custom Tool Namespace" für diese DesignData-Datei zu leeren. Das alles hat nicht geholfen. Wenn ich in der xaml-Datei die Taste F12 drücke, komme ich nirgendwo hin, das funktioniert nur bei .cs-Dateien.

Meine Lösung

Ich bin diesen lästigen Fehler losgeworden, indem ich die Eigenschaft in ihrer vollständigen Namespace:classname.propertyname-Form in einem separaten Xml-Element referenziert habe, das ihr gewidmet ist (anstatt sie in einem Xml-Attribut der übergeordneten Klasse zu referenzieren). In Ihrem Fall würde das bedeuten:

<local:FooModel xmlns:local="clr-namespace:MyProject" FullPath="C:/www" >
    <local:FooModel.Name>Sample</local:FooModel.Name>
</local:FooModel>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X