Я пытаюсь использовать CallMethodAction
, связанный с элементом управления в окне WPF, используя метод из примеров библиотеки Prism и документации.По какой-то причине компилятор XAML отказывается признать, что пространство имен Microsoft.Expression.Interactivity.Core
даже существует.Однако у меня нет проблем с использованием тех же классов из того же пространства имен в коде для этого представления.
В XAML я пробовал оба канонических пространства имен:
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ic="http://schemas.microsoft.com/expression/2010/interactions"
кака также пространство имен CLR:
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ic="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions"
Во всплывающем браузере Intellisense для пространства имен отображается первое пространство имен, но не для пространств имен XML и CLR для второго.В любом случае следующий XAML не может быть скомпилирован:
<Button HorizontalAlignment="Right" Content="Cancel">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<ic:CallMethodAction />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
У него нет проблем с поиском тега Interaction.Triggers
, но он жалуется на то, что тег CallMethodAction
не существует в указанном пространстве имен.Фактически Intellisense для тега пространства имен ic
действует так, как будто такого пространства имен нет.Однако я не получаю сообщение об ошибке, что пространство имен CLR не может быть найдено, что я делаю, если пытаюсь использовать несуществующее пространство имен.
Однако в конструкторе для этогоокно, я могу сделать это:
var x = new Microsoft.Expression.Interactivity.Core.CallMethodAction();
Это компилируется и работает нормально.Как это вообще возможно?