c# – ListBox Item向子节点返回冲突属性
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – ListBox Item向子节点返回冲突属性,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2536字,纯文字阅读大概需要4分钟。
内容图文
![c# – ListBox Item向子节点返回冲突属性](/upload/InfoBanner/zyjiaocheng/780/c3d9a2dc729140be9981d9b85bac0d0f.jpg)
所以此刻我很难过,并希望另一双眼睛能够捕捉到我所缺少的东西,或者至少让我指向一个可以进一步挖掘的方向.提前抱歉,我不经常问快速简单的问题.
场景:巨大的Silverlight解决方案,带有一些不稳定的部分,它们希望用新功能构建,但没有大量的重写或任何东西.其中一个是虚拟化ListBox.这个ListBox是许多不同事物的父级,我通常不希望看到它们按照它们的方式完成.所以在伪中给出一点层次的可视化;
ListBox (Parent)
-ListBoxItemTemplate
–A user control that hosts a ContentControl where other UserControls are swapped out in it.—Multiple other UserControls that get swapped out in the previous
ContentControl at runtime based on numerous conditions.—-Within each nested UserControl there’s often other nested ItemsControls and collections of sorts with their Item Template.
希望我仍然对这个怪物有所了解,但如果没有,这里有一些更直观的东西来帮助传达我所遇到的问题;
所以这是我目前的问题.基于他们想要的东西,没有做一些重大的重构,我正在尝试制作柠檬水并使用父列表框中的SelectedItem bool来执行某些子视图UserControls中的一些操作.
我通过快速祖先抓取父ListBoxItem的IsSelected来执行此操作.我通过子UserControls中的快速{Binding IsSelected,RelativeSource = {RelativeSource Mode = FindAncestor,AncestorType = ListBoxItem}}执行此操作(xaml wise).
在大多数情况下,它按预期工作,并返回True / False就可以完成它需要做的事情.但是,在某些情况下,当其他各种UserControl充当项目时,它可能会将IsSelected返回到第一级嵌套UserControl,但对其中一个子嵌套UserControl返回False.或相反亦然.有趣的是,它根本不一致.
例如,假设我加载了20个项目.全部使用完全相同的嵌套控件结构.我会得到奇怪的结果,其中18个项目将返回True,也许2个返回False.在基本解释中意味着我选择一个ListBoxItem.一切都按预期返回,一切都按照预期的方式进行.但是,我将从同一个列表中选择另一个ListBoxItem,它使用所有完全相同的部分,最外层的父元素将返回预期的选定项目的属性….但是,列表上的完全不同的项目将收到财产也.
或者帮助可视化.想象一下,你正在查看一个列表框,你选择一个项目,里面的东西出现了.你选择另一个,同样的事情发生了预期.您从列表顶部选择另一个,列表底部的项目将显示针对您所选内容的操作.您要选择的项目仍将返回Focused并显示为焦点,除了您未触摸的完全不同的项目获取操作结果并且当它应该为False时将bool抛出True.
希望我没有在这个混乱中失去你.我的问题是,到底是什么导致了这种行为?为你做任何警钟(除了明显的警钟)吗?
在那里的其他任何地方都没有使用其他ListBox控件.我甚至不确定要找什么?也许这只是Silverlight中祖先关系绑定中的一个错误?也许是一些奇怪的命名碰撞或什么?我不确定,故障排除已经成为我存在的祸根,但考虑到它是我的选择,我对选项的限制.我把所有这些废话都撕掉了,并以更有意义的方式进行.
无论哪种方式,感谢让我借用一些大脑时间,考虑到我确信这对任何人来说都是多么令人困惑.
内容总结
以上是互联网集市为您收集整理的c# – ListBox Item向子节点返回冲突属性全部内容,希望文章能够帮你解决c# – ListBox Item向子节点返回冲突属性所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。