WPF Loaded事件连续调用两次的问题

本文探讨了一个WPF应用中UserControl的Loaded事件被触发两次的问题。作者通过创建一个简单的示例,发现问题是由于在TabItem中使用了ScrollViewer控件导致的。即使移除特定代码,事件仍然重复触发。经过群内讨论,有人指出可能与Visual Studio版本或.NET Framework版本有关,作者验证后发现使用VS2012和.NET Framework 4.0会避免该问题,而VS2010则会出现问题。文章寻求对此现象的解释。
摘要由CSDN通过智能技术生成

      最近开发的一套系统中,在检查开发成员的代码时候,在Loaded事件中加上以下语句:

this.Loaded -= new RoutedEventHandler(***_Loaded);这让我觉得有些奇怪。如是参照系统中的代码逻辑写了一个demo。

MainWindow代码如下:

private void Window_Loaded(object sender, RoutedEventArgs e)
{
TabItem item = new TabItem();
UserControl1 test = new UserControl1();
item.Header = "测试。。。";
item.Content = test;
item.IsSelected = true;
tbc.Items.Add(item);
}

UserControl1再加载一个UserControl2,前台代码如下,后台没有代码:

<Grid x:Name="detailGrid">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="5*"/>
<ColumnDefinition Width="4"/><

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值