Subj,我怎么能得到它?
<controls:Pivot.TitleTemplate>
<DataTemplate>
<mainPivot:MyUserControl Name="MainPivotHeader"/>
</DataTemplate>
</controls:Pivot.TitleTemplate>
试图通过VisualTreeFinders找到它,但它只看到了枢轴项目。
UserControl显示图片,但它取决于用户。在第一次初始化期间,它是空的,因为用户尚未登录。所以,我想强制更新。
我可以使用mvvm light messaging,但我正在寻找自给自足的组件。这种强制很少见,所以我不想在这里使用消息。
答案 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上的刷新。