Получить элемент «команда-источник» xaml из ICommand - PullRequest
3 голосов
/ 23 января 2012

Я хочу реализовать ICommand в отдельном классе и хочу получить доступ к кнопке отсюда:

<Grid>
    <Button Command="{StaticResource Do}" >Do!</Button>
</Grid>

public class DoCommand : ICommand
{
    public void Execute(object parameter)
    {
        **I need to access a xaml that triggered this command from here**
    }

    public bool CanExecute(object parameter)
    {
        return true;
    }

    public event EventHandler CanExecuteChanged;
}

Как я могу это сделать?Спасибо.

1 Ответ

1 голос
/ 23 января 2012

Вы можете передать кнопку как параметр из XAML следующим образом:

<Button Command="{StaticResource Do}" CommandParameter="{Binding RelativeSource={RelativeSource Mode=Self}, BindsDirectlyToSource=True}" >Do!</Button>

Затем в методе Execute:

public void Execute (параметр объекта) {Button button = параметр as Button;}

...