/ / caliburn micro: повторно използване на съществуващи команди - wpf, action, caliburn.micro, routed-commands

caliburn micro: повторно използване на съществуващи команди - wpf, action, caliburn.micro, routed-commands

Имам просто приложение за wpf с контрол(нека да кажем бутон), който пожари команда (да кажем ApplicationCommands.Copy). Искам същия контрол (бутонът) да бъде чувствителен към контекста, т.е. той изпълнява правилното действие (изпратете командата "Копиране"), в съответствие с текущо фокусираното управление. Така че, ако фокусът е върху текстова кутия, командата ще бъде изпратена в текстовото поле, а ако друг контрол има фокус, командата ще бъде изпратена до него. Сега имам друг контрол - ContentControl, чийто модел е зададен в XAML чрез атрибута View.Model = "{Binding ...}" на Caliburn Micro.

Бих искал да запазя "чувствителността на контекста" на бутона, т.е. командата за копиране трябва да се обработва от ViewModel на ContentControl.

Беше направен опит да се установи връзка справилния модел на модела в изгледа на модела. Това работи добре, но от друга страна, предложеният начин да се справя с подобни ситуации с Caliburn Micro изглежда е да се избегнат командите и вместо това да се използват действия. Възможно ли е да се приложи подобна обработка, като се използват само действия? Какъв е предложеният начин за интегриране на съществуващата команда с Caliburn Micro?

Благодаря предварително!

Отговори:

0 за отговор № 1

действието по подразбиране винаги е свързано с контролното име

<Button x:Name="Copy" Content="Copy"/>

в viewmodel

public void Copy()
{
}

ако искате един и същ бутон да изпълнява няколко функции, можете да го направите в самия метод

public void Copy()
{
// check and get which control has focus

// copy content to the control that has focus
}