读书人

这个是类型有关问题么

发布时间: 2013-09-06 10:17:17 作者: rapoo

这个是类型问题么?
跳转事件 <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;
}
...

读书人网 >C#

热点推荐