WPF: маршрутизация команды usercontrol в Mainwindow

Должен признаться, у меня проблемы с пониманием того, как работает wpf. У меня есть пользовательский контроль BottomControl, вложенный в мое главное окно. Если нажата кнопка в BottomControl, я хочу, чтобы в моем главном окне произошли определенные изменения (например, изменение содержимого текстового поля).

Очевидно, что проще всего просто вызвать открытую процедуру в Click_Event, но это не совсем элегантно. Я дошел до того, что использовал RoutedCommands.

public static readonly RoutedCommand BottomGridReSize = new RoutedCommand();

В XAML Usercontrol

<Button Style="{StaticResource TransparentButton}" Command="{x:Static local:Commands.BottomGridReSize}" >

В коде MainWindow

        void BottomGridReSize_CanExecute(object sender, CanExecuteRoutedEventArgs e)
        {
            e.CanExecute = true;
        }

    void BottomGridReSize_Executed(object sender, ExecutedRoutedEventArgs e)
       {
          \\Do some stuff
       }

Очевидно, что Mainwindow не может использовать эти события, потому что ist их не распознает. Что мне не хватает?

Любая помощь будет очень цениться

Джон

1 ответ

Просто для моего понимания: у вас есть BottomControl с кнопкой и вы, когда кнопка нажата, должно произойти что-то в вашем главном окне. так почему бы просто не создать DependencyProperty типа ICommand в вашем BottomControl и связать это с Button. если вы сделаете это, вы можете просто привязать Команду вашей MainViewmodel к этому DP.

   <uc:BottomControl MyDPCommand="{Binding MyMainViewmodelCommand}" />
Другие вопросы по тегам