C# 如何使用Caliburn将轴集中在ViewModel中的特定轴项目上
在通用应用程序(WP8.1项目)中使用Caliburn MVVM模式,我希望从代码中,将数据透视页的焦点放在特定的数据透视项上,从该页的Caliburn ModelView中。请注意,有时我对使用Conductor类不感兴趣,因为MyPivot页面的所有数据透视项都有一个公共数据源,所以我认为在这种情况下,为每个数据透视项提供多个ViewModel是没有用的 我想在MyPivotViewModel中做的是在代码隐藏中应该这样做:C# 如何使用Caliburn将轴集中在ViewModel中的特定轴项目上,c#,mvvm,windows-phone,caliburn.micro,C#,Mvvm,Windows Phone,Caliburn.micro,在通用应用程序(WP8.1项目)中使用Caliburn MVVM模式,我希望从代码中,将数据透视页的焦点放在特定的数据透视项上,从该页的Caliburn ModelView中。请注意,有时我对使用Conductor类不感兴趣,因为MyPivot页面的所有数据透视项都有一个公共数据源,所以我认为在这种情况下,为每个数据透视项提供多个ViewModel是没有用的 我想在MyPivotViewModel中做的是在代码隐藏中应该这样做: pvMyPivot.SelectedIndex =
pvMyPivot.SelectedIndex = 2;
或
任何建议和示例代码都将不胜感激;-) 如果需要,您可以从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)]" />
例如
另一个答案可能是将泛型类型替换为Pivot,但可能必须从那里进行修改,以合并更改以适应WinRT,而不是Panorama中的Silverlight
<Pivot SelectedIndex="{Binding PivotIndex, Mode=TwoWay}"
cm:Message.Attach="[Event SelectionChanged] = [Action SelectionChanged($eventArgs)]" />