Кастинг в MVVM Light CommandParametervalue
-
23-09-2019 - |
Вопрос
Вот моя проблема, я хочу передать целое число 1, когда этот холст нажимается. Каждый раз, когда я нажимаю на Canvas, я получаю невозможное исключение Type 'System.invalidcastException', произошедшее в Galasoft.mvvmlight.dll. Теперь я мог бы облегчить свою жизнь и просто сделать RelayCommand принять струну вместо int, но ради обучения. Как бы я сделал это так,
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonDown">
<cmd:EventToCommand Command="{Binding ButtonPress}"
CommandParameterValue="1"
</i:EventTrigger>
</i:Interaction.Triggers>
Решение
Ваша проблема связана с этой темой Игнорировать тип контента на поиски ?
Или это может помочь вам - укажите isdocument: 1 http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/08/26/excluding-folders-from-search-results.aspx
Другие советы
Вы можете передавать даты, отличные от строки в команду, используя следующий синтаксис:
<i:EventTrigger EventName="MouseLeftButtonDown">
<cmd:EventToCommand Command="{Binding ButtonPress}">
<cmd:EventToCommand.CommandParameterValue>
<s:Int32>1</s:Int32>
</cmd:EventToCommand.CommandParameterValue>
</cmd:EventToCommand>
</i:EventTrigger>
Добавьте объявление пространства имен и названия для S:
xmlns:s="clr-namespace:System;assembly=mscorlib"