UserControl中操作这个UserControl外的其他控件或者资源

1、在Window的构造函数中添加按钮监听事件
public MainWindow()
{
InitializeComponent();
this.AddHandler(Button.ClickEvent, new RoutedEventHandler(ButtonClicked));
}
2、在Window中实现这个事件
private void ButtonClicked(object sender, RoutedEventArgs e)
{
switch (comType)
{
case ComandType.Tabs:
MainTab.SelectedIndex = toTab;
break;
default:
break;
}
comType = ComandType.None;
}
这里我定义了一个枚举类型ComandType来设置需要监听的事件类型,如果不需要监听,则可以在按钮事件里,将事件类型设置为None。这样当MainWindow监听到事件后,也会忽略掉。在Window执行完操作后,也会将事件类型设置为None,否则只要有按钮事件就会继续执行。

3、在UserControl中需要被传递的事件中里设置事件类型和相关的参数
private void btnProSelect_Click(object sender, RoutedEventArgs e)
{
Button bt = sender as Button;
MainWindow.proId = bt.CommandParameter.ToString();
MainWindow.toTab = 1;
MainWindow.comType = ComandType.Tabs;
}
OK,成功了,当在UserControl里点击了btnProSelect按钮时候,首先将参数传递给MainWindow,然后设置类型。MainWindow在监听到事件后通过switch来执行响应的操作,然后在将类型设置为None。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值