Передать объект-потомок в качестве параметра команды
- Привет ! Поэтому я создаю приложение WPF, используя архитектурный шаблон MVVM. Внутри этого приложения у меня есть listview. Я привязал событие SizeChanged окна к команде, используя этот фрагмент кода XAML:
<i:EventTrigger EventName="SizeChanged"> <i:InvokeCommandAction Command="{Binding WindowSizeChangedCommand}"/> </i:EventTrigger>
Теперь я хочу передать этой команде параметр, который является шириной listview.
Я попытался сделать это следующим кодом:
<i:EventTrigger EventName="SizeChanged"> <i:InvokeCommandAction Command="{Binding WindowSizeChangedCommand}" CommandParameter="{Binding Width, ElementName=listView}"/> </i:EventTrigger>
Дело в том, что это не работает ! Ха-ха-ха-ха, я знаю, как найти объект-предок с помощью XAML. Но я не знаю, как сделать наоборот. Есть идеи, что делать ?? Большое вам спасибо за ваше время !
Что я уже пробовал:
<pre><i:EventTrigger EventName="SizeChanged"> <i:InvokeCommandAction Command="{Binding WindowSizeChangedCommand}" CommandParameter="{Binding Width, ElementName=listView}"/> </i:EventTrigger>
J. Calhoun
Как выглядит ваша WindowSizeChangedCommand? Кроме того, Совет, была проблема, что CommandParameter нужно было объявить перед командой, я не уверен, была ли эта проблема решена или какую версию вы используете, но попробовать стоит... но с командой paramater, объявленной первой, ретранслятор должен иметь что-то вроде "new RelayCommand(param => WindowSizeChange(param)); param будет командным параметром, который вы передали.
Кроме того, я обнаружил, что использование width дало мне NaN, но свойство "фактическая ширина" дало мне фактическое число.