首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

这个是类型有关问题么

2013-09-06 
这个是类型问题么?跳转事件 ec:NavigateToPageAction TargetPage/Face.xaml?selectedItem2/对应Name

这个是类型问题么?
   跳转事件 <ec:NavigateToPageAction TargetPage="/Face.xaml?selectedItem=2"/>

  对应Name <phone:PivotItem x:Name="Face2" Header="无节操">


 protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            if (DataContext == null)
            {
                
              if (NavigationContext.QueryString.ContainsKey("selectedItem"))
                {
                    String index ="Face"+ this.NavigationContext.QueryString["selectedItem"];
                  
                    DataContext = App.ViewModel;
                    FaceName.SelectedItem = index as Object;
                }
            }
        }

只要点击就抛异常,如果直接赋值 FaceName.SelectedItem = Face2; 就通过

该怎么转换类型?
[解决办法]
Face2是对象名,怎么能用字符串呢。

        public static List<T> GetVisualChildCollection<T>(object parent) where T : UIElement
        {
            List<T> visualCollection = new List<T>();
            GetVisualChildCollection<T>(parent as DependencyObject, visualCollection);


            return visualCollection;
        }

        private static void GetVisualChildCollection<T>(DependencyObject parent, List<T> visualCollection) where T : UIElement
        {
            int childrenCount = VisualTreeHelper.GetChildrenCount(parent);
            for (int i = 0; i < childrenCount; i++)
            {
                DependencyObject child = VisualTreeHelper.GetChild(parent, i);
                if (child is T)
                {
                    visualCollection.Add(child as T);
                }
                else if (child != null)
                {
                    GetVisualChildCollection<T>(child, visualCollection);
                }
            }
        }

...
foreach (var obj in GetVisualChildCollection<PivotItem>())
{
    if (obj.Name == "Face"+ this.NavigationContext.QueryString["selectedItem"])
        FaceName.SelectedItem = obj;
}
...

热点排行