Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >让DataTemplate的孩子抛出“灾难性的失败”(WP8.1)

让DataTemplate的孩子抛出“灾难性的失败”(WP8.1)
EN

Stack Overflow用户
提问于 2015-02-14 09:14:14
回答 1查看 603关注 0票数 1

我正在尝试创建一个Windows 8.1应用程序。每当我试图获取DataTemplate的子级(这是必要的,因为它们被嵌入到ListView中)时,我就会得到一个详细说明

灾难性故障( HRESULT: 0x8000FFFF (E_UNEXPECTED)除外)

我在这里做了一个非常简单的复制品:

在Visual中,创建一个新的Windows空白应用程序模板。在MainPage.xaml中,在OnNavigatedTo事件处理程序中,添加一行代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var count = VisualTreeHelper.GetChildrenCount(new DataTemplate());

当您调试这个应用程序时,它马上会说“用户代码中出现了一个未处理的System.Exception”。

我已经检查了MSDN,以确保此方法不应引发任何异常。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-14 11:34:26

它失败了,因为DataTemplate不是可视对象,也没有可视子对象。(显然,VisualTreeHelper.GetChildrenCount并没有实际检查您是否正在传递一个可视的信息,这就是为什么您看到的是灾难性的故障而不是正常的异常)。

通常,您不需要查看ListView的可视树。通常,您可以将ItemsSource设置为包含所有需要的属性的自定义类的集合。

如果您仍然需要ListViewItem中的实际可视化--这是最后的选择--那么您将创建一个自定义附加属性(-ies),并将其附加到DataTemplate中的相关可视化中。当附加属性更改事件触发时,事件发送方将是相关的可视对象,该发件人的DataContext将是该列表项的数据值。

例如,如果您在ListView中有一个按钮,并希望按钮单击以触发一个操作,那么您将执行如下操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <ListView.ItemTemplate>
        <DataTemplate>
            <Button MyClickHelper.ClickHandler="{Binding}"/>
        </DataTemplate>
    </ListView.ItemTemplate>

然后,在您的类MyClickHelper

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private static void OnClickHandlerChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
    var button = (Button)d;
    var data = (MyDataType)e.NewValue;
    button.Click += (btn, args) =>
    {
        // do action here based on data above
    }
}

这被称为附加行为--一个修改按钮行为的附加属性。它是一种有用的模式,它在代码的不同部分之间保持良好的边界,并且允许每个按钮具有指定的行为,而不需要某个主类直接管理所有不同的按钮。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28518078

复制
相关文章
你的孩子不是你的“孩子”
- 结语 - 饭圈乱象、网络沉迷、童星招募、虚拟恋人、设圈不理性消费、游戏代解防沉迷…  随着孩子对网络的依赖不断加深,他们遇到网络风险的可能性也越大。 很多时候,网络暗藏的风险正好就是家长的盲点。对于家长来说,应该及早帮助孩子建立隐私保护意识,并教会他们识别网络风险,在发现异常时,尝试去理解孩子内心深层的情感需求,让孩子感受到足够的爱和信任。对于孩子来说,规避网络风险需要做到“三不”,不轻信网络上的陌生人,不发送自己的隐私,不轻易转账。 近两年来,国家各级主管机关对未成年人保护工作高度重视,从2021年6
腾讯举报中心
2022/06/01
3440
你的孩子不是你的“孩子”
​联想让纪连海成为每个孩子的历史老师
纪连海老师在南京收获的掌声,让人们见证了名师的力量,也见证了科技的力量;同时,那些此起彼伏的掌声也让人们意识到,3000亿元人民币的教育信息化市场,究竟能激发出多少泽被后世的科技创新。
IT创事记
2022/06/16
6480
​联想让纪连海成为每个孩子的历史老师
Python抛出异常_python抛出异常的作用
在python中不同的异常可以用不同的类型(python中统一了类与类型,类型即类)去标识,不同的类对象标识不同的异常,一个异常标识一种错误
全栈程序员站长
2022/11/02
2.5K0
禁忌边界丨你的孩子不是“你的孩子”
- 结语 - 很多家长往往忽视了网络安全风险。在他们看来,“孩子只是在自己眼皮底下上个网,会有什么危险呢?” 但,你真的了解你的孩子吗?你所看到的孩子,和在网络上活跃着的他们,差距有多大? 随着未成年人对互联网的依赖不断加深,你的孩子也许早已不是“你的孩子”。 家庭教育是未成年人网络安全保护中不可或缺的一环。因未成年人心智发育还不成熟,对网络风险的辨别能力和防御能力不足,家长应加强对孩子的上网管理,堵疏结合,保持良好亲子关系,同时以身作则,管理好
腾讯举报中心
2021/06/02
4980
Code.org 一个让孩子学习编程的网站
0 前言 这篇文章主要是介绍有趣的网站,我在简书那也有写过这样的题材,干脆在自己公众号也写写吧。 1 介绍 Code.org (https://studio.code.org/ )是一个非盈利性组织,该组织创建了同名的网站 Code.org。该网站为教育机构,旨在于支持美国的学生学习计算机科学,随着网站的发展,志愿者也逐渐多了起来,翻译工作也水到渠成的进行着。 Code.org 期望每一名学生都有机会接触并学习计算机科学,并且提供了不少的课程资源,学生可以在线学习编程。课程适合绝大部分的人,只要年龄超
伪君子
2018/05/11
9.2K0
让孩子学会学习,先从培养良好的学习习惯开始
孩子学会学习,首先就必须培养良好的学习习惯。凡是学习成绩好而且稳定的孩子,都是从小就培养形成了良好的学习习惯;而成绩忽好忽坏的孩子,也是因为缺乏良好的学习习惯。那么,良好的学习习惯都包括什么?又该怎样去培养呢?下面小编就与各位分享这篇文章,希望对大家有所启发。 1 按计划学习的习惯 孩子的主要任务是学习,同时还有劳动、文娱活动、体育活动、游戏、交往等内容。家长指导孩子制订计划,应该包括德、智、体各方面的安排,学习是其中的重要部分。 孩子的计划包括每天的时间安排、考试复习安排和双休日、寒暑假安排。计划要简明,什么时间干什么,达到什么要求。 每天的计划安排,星期一至五除了上课之外,要把早自习和放学回家以后的时间安排好。早自习可以安排背诵、记忆基础知识、预习等内容,放学回家主要是复习、做作业和预习,应该有玩的时间和劳动的时间。 周六和周日应安排小结性复习、做作业、劳动、文体活动以及参加课外兴趣活动。内容不可排得太满,否则影响效果。 寒暑假时间较长,除了完成假期作业之外,要安排较多的课外阅读和较多的文体活动。有的孩子学习吃力,应利用假期补习一两门功课。 制订计划要发挥孩子积极性,家长不能代替,应该提出指导性意见。督促孩子严格执行计划,不能订完计划放在一边。计划可以调整,不可放弃。 2 专时专用、讲求效益的习惯 不少孩子,学习“磨”得很,看书、做作业,心不在焉,时间耗得很多,效益不好。其原因就是没有形成专时专用、讲求效益的习惯。 孩子学习,应该速度、质量并重,在一事实上时间内,按要求完成一定数量的任务。这既要讲清道理,更需要认真训练。 由于孩子年龄不同、个性不一,每次能够集中脑力的时间长短不一样。要从实际出发提出要求。 比如小学一二年级的孩子,每次学习时间以20分钟左右为宜,以后逐渐延长。开始,孩子往往不会掌握时间,家长要指导他,该学时学,该玩儿时玩儿。 可以教孩子上好闹钟,按定好的时间作息。最重要的是教孩子给自己提出学习内容的数量和质量要求,一旦坐到书桌前,就进入适度紧张的学习状态。 每次学习之后,要评价自己做得如何,家长及时给以鼓励。坚持下去,就能形成专时专用的习惯。 有些家长,只要求学习,恨不得能让孩子老坐在书桌前看书、做作业,没有休息与放松的时间。这样,反而容易形成磨磨蹭蹭、不讲效率的毛病。 3 独立钻研、务求甚解的习惯 学习,最忌讳一知半解、浅尝辄止。要想学习好,必须养成独立钻研、务求甚解的习惯。 怎样培养这方面的习惯呢? ●方法一: 鼓励孩子刨根问底的积极性。在日常生活中,孩子对许多事总爱刨根问底,这是好奇、求知的表现,说明孩子爱动脑子。家长切不可嫌孩子嘴贫,冷漠对待。最好跟孩子一块儿刨根问底,能解决的自己解决,不能解决的请教他人或者阅资料。 ●方法二: 指导孩子在学习过程中,多问自己几个“为什么”。由于学习任务多,孩子往往满足于知识是什么就过去了,很少多问几个“为什么”。家长不妨教给孩子每天学习之后,给自己提一个、两个“为什么”的问题,动脑筋去思考,想出合理的答案。 ●方法三: 孩子考家长,家长考孩子。安排一个时间,全家人坐下来,就某一方面的问题孩子和家长互相考一考。内容应事先定好,大家有所准备,谁提出问题,自己必须有准确答案。 ●方法四: 鼓励孩子一题多解。老师留的作业,常常不止一种答案,一种解法。孩子在完成作业时,只写一种。家长可以引导孩子想一想,还有没有别的答案,别的方法。时间允许,可以写在另外的纸上或本上。 ●查阅工具书和资料的习惯 工具书和资料是不会说话的老师,在学习中,会使用工具书和资料好处很多。除了一般的字典、词典之外,各门学科都有专门的工具书。 家长要指导孩子多利用工具书。家长自己应给孩子做榜样,遇到生字、生词,请教不会说话的老师。还可以跟孩子进行查字典、词典比赛。 有条件的家庭,可以带孩子一起去选购几本工具书(包括资料性的)放在书架上,经常查阅。买学科工具书,应听听任课教师的意见。这方面习惯养成了,终生受益。 ●善于请教的习惯 善于请教是一种好习惯。善于请教的前提是善于思想、善于提出问题。家长要指导孩子随时把学习中遇到的问题记录下来,以便向老师请教,向同学请教。 向别人提出的问题,应该是自己通过努力没有解决的。提问要讲质量,翻开书本就能解决的,最好自己解决。有些疑难问题,如果自己有尝试性答案,带着答案去请教,会收获更大。 学问、学问,既要学,又要问。有的孩子上课不敢问,下课也不敢问。对这样的孩子,要鼓励他突破第一次,几次之后,就敢提问了。 来源:人民教育
用户1477290
2018/03/15
7510
配置 legacyUnhandledExceptionPolicy 防止后台线程抛出的异常让程序崩溃退出
如果是做 UI 开发,很容易就找到 Dispatcher.UnhandledException 事件,然后在事件中进行补救。如果补救成功,可以设置 e.Handled = true 来阻止异常继续让程序崩溃退出。但是,如果是后台线程抛出了异常呢?并没有 Dispatcher 可以用。所以我们就束手就擒让程序自己退出吗?
walterlv
2023/10/22
4290
让孩子进阶中产的唯一路径是编程?
作者 | 周翔 ****年,新的北京城已经建成**年了。 如今的北京已经是一座有着八千万人口的巨型城市,但是位于城市中心的紫禁城却不再属于每一个居民。 为了满足八千万人口的居住需求,北京将自己改造成了一座“折叠城市”: “大地的一面是第一空间,五百万人口,生存时间是从清晨六点到第二天清晨六点。空间休眠,大地翻转。翻转后的另一面是第二空间和第三空间。第二空间生活着两千五百万人口,生存时间是从次日清晨六点到夜晚十点,第三空间生活着五千万人,生存时间是从十点到清晨六点,然后回到第一空间。时间经过了精心规划和最
AI科技大本营
2018/04/26
6480
让孩子进阶中产的唯一路径是编程?
配置 legacyUnhandledExceptionPolicy 防止后台线程抛出的异常让程序崩溃退出
发布于 2017-10-16 12:52 更新于 2017-10-26 10:51
walterlv
2018/09/18
3K0
【小码匠自习室】让错误成为孩子进步的阶梯
碎碎念 今天梳理了这篇文章,同一个地方只能跌一次跟头,再重复错误肯定被老码农敲脑袋 梳理这篇文章源于3月份参加NOI Online测试赛没有全文比较输出文件内容,只是对比了几个值,导致爆零( ̄﹏ ̄;) 标题是老码农起的,心灵鸡汤太多了,以后想管他叫”唐鸡汤“了。(*^_^*) 准备测试文件 mode_ex1.ans 4 1 5 1 4 2 4 8 2 1 2 3 4 5 mode_ex1-2.ans 修改了第13行数据:4 -> 6 4 1 5 1 4 2 4 8 2 1 2 3 6 5 mode_ex
小码匠
2022/08/08
3790
让机器人WIGL教你的熊孩子写代码玩乐器
教小朋友学习是一个让人烦恼的事情,尤其是忙于工作的家长。教育小兔崽子需要很多耐心和爱心,如果刚好这两种品质都没有,很多家长会就像找保姆找家教,如果妈妈还担心学习的话,那还有“哪里不会点哪里的”so e
机器人网
2018/04/13
6430
让机器人WIGL教你的熊孩子写代码玩乐器
寻找走失多年的儿童,这个算法让父母看到孩子长大的模样
近日,密歇根州立大学的研究者提出一个「增龄」模块,将失踪儿童原始图像中的深度人脸特征「老化」(或者说「增龄」),从而帮助匹配原来的图像和数年后的图像。
机器之心
2019/12/25
8780
寻找走失多年的儿童,这个算法让父母看到孩子长大的模样
android UiAutomator让运行失败的用例重新运行
本人在使用android UiAutomator做测试的时候,发现经常会因为页面加载太慢或者网络延迟比较大又或者出现意外情况导致用例失败,但是在检查的时候又能运行成功,提出了一个让失败的用例重新运行的需求,经过尝试终于成功了,使用excel作为测试报告的类型,html的类似,下面分享一下运行的代码,供大家参考。
FunTester
2019/09/04
8580
面向超网络的连续学习:新算法让人工智能不再“灾难性遗忘”
这种可以在新的环境中不断吸收新的知识和根据不同的环境灵活调整自己的行为的能力,也正是深度学习系统与人脑相差甚远的重要原因。
AI科技评论
2020/01/16
1.9K0
面向超网络的连续学习:新算法让人工智能不再“灾难性遗忘”
穷人的孩子早编程
你会不会时常疑惑,同为程序员,为啥搞开源的大佬能做出优秀的库,而自己只能跟着文档调用API?
公众号@魔术师卡颂
2021/10/12
4160
抛出和接收异常的顺序
异常(exception)是C++语言引入的错误处理机制。它 采用了统一的方式对程序的运行时错误进行处理,具有标准化、安全和高效的特点。C++为了实现异常处理,引入了三个关键字:try、throw、catch。异常由throw抛出,格式为throw[expression],由catch捕捉。Try语句块是可能抛出异常的语句块,它通常和一个或多个catch语句块连续出现。
恋喵大鲤鱼
2018/08/03
9660
[UWP]如何使用代码创建DataTemplate(或者ControlTemplate)
在UWP中DataTemplate是一个十分重要的功能,并且几乎无处不在,例如DataGrid中的DataGridTemplateColumn:
dino.c
2019/01/18
1.3K0
[UWP]如何使用代码创建DataTemplate(或者ControlTemplate)
[WPF]如何使用代码创建DataTemplate(或者ControlTemplate)
上一篇文章([UWP]如何使用代码创建DataTemplate(或者ControlTemplate))介绍了在UWP上的情况,这篇文章再稍微介绍在WPF上如何实现。
dino.c
2019/01/17
2.1K0
python抛出异常会终止程序吗_python抛出异常的作用
当python执行无效的代码时,就会抛出异常。用 try 和 catch 语句可以处理异常,以避免程序的崩溃。我们也可以在代码中抛出自己的异常,抛出异常意味着 停止运行这个函数中的代码,将程序执行转到except语句
全栈程序员站长
2022/11/02
1.8K0
springboot 如何优雅的抛出异常
之前项目的异常是一层一层抛出去及其麻烦,并且每个层都要try catch 然后把错误信息包装返回到最顶层 ,从service一层一层抛出去。人都写傻了,后面发现了springboot项目有全局拦截器。还是看的太浅了,先随便创建一个
全栈程序员站长
2021/04/07
1.4K0

相似问题

android:让孩子的孩子

30

让孩子节点的孩子,直到没有孩子

29

malloc灾难性地失败

31

在XAML / WP8.1中绑定DataTemplate中MenuItem的可见性

22

需要帮助实现DataTemplate选择器[WP8.1] [WindowsPhone]

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文