我有这样的TabView
:
<TabView ItemsSource="{Binding Documents}">
<TabView.ItemTemplate>
<DataTemplate>
<local:MyUserControl />
</DataTemplate>
</TabView.ItemTemplate>
</TabView>
我已经为MyUserControl.Loaded
事件设置了事件处理程序,只是为了看看会发生什么。令人惊讶的是,无论哪个选项卡处于活动状态,事件仅触发一次。当您在标签之间切换时,Loaded事件不会触发一次以上
因此,我尝试捕获Visibily更改的事件(使用RegisterPropertyChangedCallback
方法)。它从未被解雇!
然后,我想知道MyCustomControl中是否有任何事件活动选项卡更改时,因为没有触发Loaded
和“ VisibilityChanged”事件?
每当TabView活动内容更改时,我都需要通过消息总线发送一条消息,但是我需要MyUserControl知道该更改,因为它是唯一知道在消息内部发送内容的消息。
答案 0 :(得分:0)
我需要在被“激活”的孩子(一个 其内容在每个选项卡开关上可见)
您可以为Tapped
使用 local:MyUserControl
事件,然后使用DataContext
来读取现在正在点击的项目。轻按将在加载所有事件之前触发。因此,这将有助于您激活“拦截儿童”。