将Caliburn MVVM模式用于通用应用程序(WP8.1项目)我希望从代码中将PivotPage聚焦在特定数据透视图上,从该页面的Caliburn ModelView开始。请注意,有时我对使用Conductor类不感兴趣,因为MyPivot页面的所有PivotItem都有一个共同的DataSource,所以我认为在这种情况下,为每个PivotItem都有多个ViewModel是没用的。
我想在MyPivotViewModel中做的是以这种方式在代码隐藏中应该做的事情:
pvMyPivot.SelectedIndex = 2;
或
pvMyPivot.SelectedItem = Pivot2Name;
赞赏任何建议和示例代码; - )
答案 0 :(得分:1)
如果需要,可以从viewmodel绑定到SelectedIndex或SelectionChanged事件或两者...只需要复制事件签名,因为SelectedIndex将是一个整数属性。
private int _pivotindex;
public int PivotIndex{
get{ return _pivotindex;}
set{
_pivotindex = value;
NotifyOfPropertyChanged();
}
}
public void SelectionChanged( SelectionChangedEventArgs e){
}
然后在你的xaml中你会
<Pivot SelectedIndex="{Binding PivotIndex, Mode=TwoWay}"
cm:Message.Attach="[Event SelectionChanged] = [Action SelectionChanged($eventArgs)]" />
例如......
另一个答案可能会更换为通用类型转换,但可能必须从那里修改以包含更改以适应WinRT,而不是在Panorama的情况下Silverlight ...