Ich versuche, eine CallMethodAction
gebunden an ein Steuerelement in einem WPF-Fenster zu verwenden, mit der Methode aus der Prism-Bibliothek Beispiele und Dokumentation. Aus irgendeinem Grund weigert sich der XAML-Compiler zu bestätigen, dass der Microsoft.Expression.Interactivity.Core
-Namespace überhaupt existiert. Ich habe jedoch kein Problem damit, die gleichen Klassen aus demselben Namensraum im Code-Behind für diese Ansicht zu verwenden.Kann SDK-Klassen im Code verwenden, aber nicht XAML (Prism Desktop)
In XAML ich die kanonischen beiden Namespaces versucht habe:
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ic="http://schemas.microsoft.com/expression/2010/interactions"
sowie den CLR-Namespace:
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ic="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions"
Der Namespace Intellisense Popup-Browser zeigt den ersten Namespace aber weder die XML- oder CLR-Namespaces für den zweiten. In beiden Fällen scheitert die folgende XAML zu kompilieren:
<Button HorizontalAlignment="Right" Content="Cancel">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<ic:CallMethodAction />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
es kein Problem zu finden, den Interaction.Triggers
Tag hat, aber bemängelt, dass der CallMethodAction
Tag existiert nicht in dem angegebenen Namespace. Tatsächlich verhält sich Intellisense auf dem Namespace-Tag ic
, als ob es keinen solchen Namespace gibt. Allerdings habe ich nicht bekomme den Fehler, dass der CLR-Namespace nicht gefunden werden konnte, was ich tun, wenn ich versuche, einen nicht existierenden Namespace zu verwenden.
jedoch im Konstruktor für dieses Fenster, kann ich dies tun:
var x = new Microsoft.Expression.Interactivity.Core.CallMethodAction();
Das kompiliert und läuft gut. Wie ist das überhaupt möglich?
Haben Sie versucht, den Verweis auf Microsoft.Expression.Interactions.dll zu entfernen und erneut hinzuzufügen? – surfen
@surfen: Sie brauchen '* .Interactivity.dll' ... –
@ H.B. Wie soll ich die Blend-Klassen verwenden, wenn ich nicht auf die Blend-Assembly referenziere? –