Передающее событие args и отправитель к RelayCommand

Как Вы получаете отправителя события при использовании RelayCommand?

10
задан skaffman 3 June 2010 в 07:14
поделиться

2 ответа

Это один из тех бесполезных% ¤ # ответов, когда я на самом деле не отвечаю на ваш вопрос, а вместо этого читаю вам лекцию о том, что вы должны делать по-другому. Так что извините за это. Вот что:

Если вы оказались в положении, когда вам нужно добраться до объекта-отправителя в вашей модели просмотра, вам, вероятно, следует сделать что-то другое. Ссылаясь, скажем, на Button или ListBox в вашей модели представления, вы сделали эту модель представления осведомленной о концепциях пользовательского интерфейса, о которых она не должна ничего знать. Я предлагаю вместо этого подключиться к событию на странице кода программной части, выяснить, что вам нужно знать об отправителе или о чем-то еще, а затем программно выполнить команду viewmodel. Это также нарушает «правила» MVVM, но IMHO это гораздо более легкий взлом, чем ссылка на отправителя в вашей модели просмотра.

19
ответ дан 3 December 2019 в 14:10
поделиться

У меня была похожая проблема, но мне нужно было только получить EventArgs. К счастью, это было абсурдно просто, как только я нашел ответ в другой теме здесь, в Stack Overflow.

<cmd:EventToCommand Command="{Binding SomeCommand, Mode=OneWay}" PassEventArgsToCommand="True"/>

Как только вы узнаете об этой волшебной настройке «PassEventArgsToCommand», вы золотые. Просто используйте RelayCommand вместо простой RelayCommand.

Надеюсь, это поможет.

10
ответ дан 3 December 2019 в 14:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: