0

だから、私は Pivot と PivotItems を UserControls として持っています。すべての PivotItem がいつ NavigatedTo と NavigatedFrom になるかを知りたいです。

基本クラスを作成し (PivotItems はそれを継承しています)、そこに 2 つのメソッド (To と From) を追加し、ピボットに LoadingPivotItemCommand() があるので、どの PivotItem がロードされているかがわかります。

しかし、このイベントをピボットにブロードキャストするにはどうすればよいでしょうか? いくつかの方法を試しましたが、すべて null です。

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 に答える