0

所以,我将 Pivot 和 PivotItems 作为 UserControls。我想知道,当每个 PivotItem 是 NavigatedTo 和 NavigatedFrom 时。

我创建了一个基类(PivotItems 正在继承它),添加了 2 个方法(To 和 From),并且我在枢轴中有 LoadingPivotItemCommand(),所以我知道加载了哪个 PivotItem。

但是如何将此事件广播到枢轴?我尝试了一些方法,但它们都是空值。

void LoadingPivotItemCommand(PivotItemEventArgs args)
    {
        var b = args.Item.Parent as BaseUserControl;
        var a = args.Item.Content as BaseUserControl;
        var a1 = args.Item.Content as UserControl;

        var c = args.Item.DataContext as BaseUserControl;

        if (c != null) 
            c.OnPivotItemActivated();
    }

PivotItems 在 xaml 中定义:

   <controls:PivotItem Header="{Binding Path=MainResources.Products, Source={StaticResource LocalizedStrings}, Converter={StaticResource StringToLowerCaseConverter}}"
                            Name="PivotItemProducts">
            <Grid>
                <productsView:ProductUserControl />     
            </Grid>
        </controls:PivotItem>
4

1 回答 1

1

我猜 ProductUserControl 是继承形式 BaseUserControl 的一个。如果您的 BaseUserControl 始终在您显示的 xaml 中的 Grid 内,那么您可以使用:

var a1 = (args.Item.Content as Grid).Children[0] as BaseUserControl;

否则,如果您的 UserControl 可以放置在 PivotItem 内的不同部分,那么您可以使用我给您的功能,只需将 Image 替换为 BaseUserControl。

于 2013-09-19T18:09:41.123 回答