0

主题,我怎样才能得到它?

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

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

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

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

4

1 回答 1

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>

当您要刷新时,请在视图模型上调用刷新。

于 2013-10-18T23:09:41.543 回答