Чтобы получить параметр обратно, вы можете отредактировать ваш производный класс CommandBehaviorBase следующим образом:
private void ItemEditEnded(object sender, DataFormItemEditEndedEventArgs e)
{
this.CommandParameter = e.EditAction;
ExecuteCommand();
}
Это отправит действие EditAction (или что-то еще, что вы хотите) в CommandDelegate. В этом случае вы бы не добавили прикрепленное свойство для параметра. Правильно измените класс присоединенного свойства (не указывайте CommandParameter). Я не влюблен в этот подход (кажется, немного нестандартным), и мне интересно, есть ли у кого-то еще альтернативное предложение.
Я имею в виду, что вы всегда можете добавить события для различных типов событий (одно для фиксации и т. Д.), И это немного более чисто, но это будет означать много дополнительного кода. В этом случае вы можете сойти с рук, но для других событий это станет невозможным (передача координат мыши или что-то нелепое).
Мое видео о командах Prism . имеет дело с большим количеством статических параметров. Смотрите раздел «Параметры команды», чтобы узнать, как сортировать методы на основе статического присоединенного свойства.
<Button Content="Save"
HorizontalAlignment="Center"
VerticalAlignment="Bottom"
cal:Click.Command="{Binding GetCompanyData}"
cal:Click.CommandParameter="SaveButton"
/>