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}" />