Я получил UserControl с событием Click, которое я хочу вызвать по событию click другой кнопки внутри другого UserControl.Не работаетUserControl2 находится внутри UserControl1.У меня была эта проблема некоторое время, раньше я использовал класс RelayCommand с только MVVM в остальной части приложения до того момента, когда у меня был сценарий, когда я хотел поменять изображения одним нажатием кнопки.Но кнопка и место, где происходит перезапись изображений, должны быть разделены на два различных элемента управления пользователя.Во всяком случае, я получил следующий XAML на Usercontrol 2, где оборачивание изображения:
<Button x:Name="button" VerticalAlignment="Bottom" Height="48" Click="ClickData" />
Код позади UserControl2:
private bool switchimgbool = true;
public void ClickData(object sender, RoutedEventArgs e)
{
if (switchimgbool == true)
{ switchimgbool = false; }
else if (switchimgbool == false)
{ switchimgbool = true; }
switch (switchimgbool)
{
case false:
{
//some code
}
case true:
{
//some code
}
}
}
В UserControl1 xaml:
<Viewbox Stretch="Fill" Height="270" VerticalAlignment="Top">
<local:UserControl2></local:UserControl2>
</Viewbox>
///
<Button x:Name="executebutton" Click="executebutton_Click" />
Код позади UserControl1:
public static RoutedEvent SetClickData = EventManager.RegisterRoutedEvent("ClickData", RoutingStrategy.Bubble, typeof(RoutedEventhandler), typeof(UserControl2));
public event RoutedEventHandler ClickData
{
add { AddHandler(SetClickData, value);}
remove { RemoveHandler(SetClickData, value);}
}
UserControl2 us2 = new UserControl2();
private void executebutton_Click(object sender, RoutedEventArgs e)
{
us2.RaiseClickedEvent(sender);
}
Приложение построено с множеством пользовательских элементов управления и кнопок с различными представлениями.Как я уже сказал, я использовал MVVM ранее с ViewModels и Views.Тем не менее, это код в его текущем состоянии, но я пробовал разные примеры в Интернете.Но я не заставляю его работать, даже пытался сделать пользовательский ClickRoutedEventArgs.Может запускать только событие Click непосредственно в UserControl2.Возможно, я больше не думаю, что проблема в том, чтобы просто потянуть меня вниз.Если кто-нибудь сможет предоставить мне какой-нибудь код или помочь мне в правильном направлении, я буду счастлив.Есть ли быстрый способ / исправить, я был бы счастлив сделать это.