C# 在C语言中将参数值从一个函数传递到另一个函数#
以下函数包含一个导航参数,该参数表示从上一页传递的值C# 在C语言中将参数值从一个函数传递到另一个函数#,c#,visual-studio-2012,windows-8,parameters,parameter-passing,C#,Visual Studio 2012,Windows 8,Parameters,Parameter Passing,以下函数包含一个导航参数,该参数表示从上一页传递的值 protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState) { QuizArgs args = navigationParameter as QuizArgs; var SectorGroups = QuizDataSourc
protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{
QuizArgs args = navigationParameter as QuizArgs;
var SectorGroups = QuizDataSource.GetGroups(args.sector);
this.DefaultViewModel["Groups"] = SectorGroups;
}
void ItemView_ItemClick(object sender, ItemClickEventArgs e)
{
var itemId = ((QuizGroups)e.ClickedItem).UniqueId;
var sectorId = new QuizArgs
{
sector = "nav",
question = 2,
Total = 0,
type=itemId
};
this.Frame.Navigate(typeof(Quiz), sectorId);
}
我想使用单击函数中的LoadState
函数中的Object-navigationParameter
值
我想将扇区
分配给导航参数中的值,而不是字符串“nav”
如何在单击函数中使用参数扇区?您可以将参数声明为全局参数。这样,参数在这两个函数中都可以访问。请检查:
public class YourClass: YourBaseClass
{
QuizArgs args = null;
protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{
args = navigationParameter as QuizArgs;
var SectorGroups = QuizDataSource.GetGroups(args.sector);
this.DefaultViewModel["Groups"] = SectorGroups;
}
void ItemView_ItemClick(object sender, ItemClickEventArgs e)
{
if(args == null)
throw new NullReferenceException();
var itemId = args.UniqueId;
var sectorId = new QuizArgs
{
sector = "nav",
question = 2,
Total = 0,
type=itemId
};
this.Frame.Navigate(typeof(Quiz), sectorId);
}
}
公共类YourClass:YourBaseClass
{
QuizArgs args=null;
受保护的覆盖无效加载状态(对象导航参数,字典页面状态)
{
args=导航参数作为QuizArgs;
var SectorGroups=QuizDataSource.GetGroups(args.sector);
此.DefaultViewModel[“组”]=扇区组;
}
无效项目视图\u项目单击(对象发送者,项目单击事件参数e)
{
如果(args==null)
抛出新的NullReferenceException();
var itemId=args.UniqueId;
var sectorId=新的QuizArgs
{
扇区=“导航”,
问题=2,
总计=0,
类型=项目ID
};
这个.Frame.Navigate(typeof(quick),sectorId);
}
}
我开始键入一个答案,其中QuizArgs作为对象参数保存在表单/页面/任何内容中,但其效果如何实际上取决于您正在编写的UI对象的生命周期。我们能多了解一些背景吗?请看上面的编辑,这有帮助吗?不,没有帮助。他想了解环境。如果是web窗体有一个X方式,如果是windows窗体有另一个方式。@很抱歉,但不是。QuizArgs是什么并不重要,但我想知道包含“LoadState”和“ItemView\u ItemClick”的窗体/页面对象定义。我只是没有使用过Windows8编码;基本情况是,该对象将保存QuizArgs实例,但如果它是另一个UI对象(将保存太长时间,不够长),则可能不是存储它的正确位置。您是指类级别变量吗?整个程序都有一个全局文件。
public class YourClass: YourBaseClass
{
QuizArgs args = null;
protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{
args = navigationParameter as QuizArgs;
var SectorGroups = QuizDataSource.GetGroups(args.sector);
this.DefaultViewModel["Groups"] = SectorGroups;
}
void ItemView_ItemClick(object sender, ItemClickEventArgs e)
{
if(args == null)
throw new NullReferenceException();
var itemId = args.UniqueId;
var sectorId = new QuizArgs
{
sector = "nav",
question = 2,
Total = 0,
type=itemId
};
this.Frame.Navigate(typeof(Quiz), sectorId);
}
}