如何访问Pivot.TitleTemplate作为UserControl?

时间:2013-10-18 22:40:20

标签: xaml windows-phone-7 data-binding mvvm-light

Subj,我怎么能得到它?

        <controls:Pivot.TitleTemplate>
            <DataTemplate>
                <mainPivot:MyUserControl Name="MainPivotHeader"/>
            </DataTemplate>
        </controls:Pivot.TitleTemplate>

试图通过VisualTreeFinders找到它,但它只看到了枢轴项目。

UserControl显示图片,但它取决于用户。在第一次初始化期间,它是空的,因为用户尚未登录。所以,我想强制更新。

我可以使用mvvm light messaging,但我正在寻找自给自足的组件。这种强制很少见,所以我不想在这里使用消息。

1 个答案:

答案 0 :(得分:0)

您应该将Pivot的Title属性绑定到ViewModel上的属性。然后,您的DataTemplate将其DataContext设置为该对象。当您需要刷新时,可以在该对象上调用某个方法。

实施例

public class ViewModel : INotifyPropertyChanged
{
    private MyTitleObject _titleObject;

    public MyTitleObject TitleObject
    {
        get { return _titleObject; }
        set
        {
            _titleObject = value;
            OnPropertyChanged("TitleObject");
        }
    }

    public void Refresh()
    {
        TitleObject = new MyTitleObject();
        // or refresh values directly on the object
    }

    ...
}

你的Pivot xaml需要关注

<controls:Pivot Title="{Binding TitleObject}">
</controls:Pivot>

如果要刷新,请调用viewmodel上的刷新。