В рамках урока по паттерну MVVM для приложений WPF мне нужно было добавить библиотеку System.Windows.Interactivity.dll через Reference Manager. Я её там не обнаружил (версия Visual Studio - 2017). На скриншоте ниже - всё, что есть в результатах поиска, начинающееся с System.Windows:
Я подумал, что возможно данная библиотека уже встроена в новую версию проекта WPF (хотя в списке уже подключённых ссылок её тоже нет), и когда добавил нижеследующий код в ApplicationViewModel.cs, никаких ошибок пока что не было отображено средой разработки:
private RelayCommand doubleCommand;
public RelayCommand DoubleCommand {
get {
return doubleCommand ??
(doubleCommand = new RelayCommand(obj => {
Phone phone = obj as Phone;
if (phone != null) {
Phone phoneCopy = new Phone {
Company = phone.Company,
Price = phone.Price,
Title = phone.Title
};
Phones.Insert(0, phoneCopy);
}
}));
}
}
Однако, когда я добавил код XAML, то среда выдала сообщение о том, что в пространстве имён clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity не существует Interaction, EventTrigger и InvokeCommandAction:
<Window x:Class="MVVM_Tutorial.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:MVVM_Tutorial"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<!-- ... -->
<Button Content="2x">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDoubleClick">
<i:InvokeCommandAction
Command="{Binding DoubleCommand}"
CommandParameter="{Binding SelectedPhone}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<!-- ... -->
</Window>
Не знаю, каким образом это связано с библиотекой System.Windows.Interactivity, но как следует решить данную проблему?
Требуемая библиотека является частью Microsoft Expression Blend 4 SDK и не включена в стандартную поставку, но вы всегда можете подключить ее из NuGet Gallery: System.Windows.Interactivity.WPF by Microsoft
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости