想象一下,TabControl有两个TabItems.在第一项上有一个简单的TextBox.此TextBox Text属性绑定到UserControl本身的字符串属性,Mode = TwoWay,ValIDatesOnExceptions = True.只要设置了某些内容,该Text属性的setter就会抛出异常.
UserControl的Resources部分包含TextBox和验证工具提示的新默认样式(但这些样式和模板取自MSDN).
现在在TextBox中输入一些内容并让验证工具提示出现:
然后切换到第二个选项卡.验证工具提示仍然是:
我已经制作了一个包含Silverlight应用程序的VS解决方案来演示这个问题. VS解决方案zip存档可在here获得.
是否有人遇到类似的问题,甚至解决了这个问题?
免责声明:关于Silverlight 4有类似的问题here on StackOverflow,自大约一年半以来一直未得到答复.
我已经在silverlight.net发布了这个问题但几天没有回复.
public class TabControlFixBehavior: Behavior<TabControl>{ protected overrIDe voID OnAttached() { Associatedobject.SelectionChanged += AssociatedobjectOnSelectionChanged; base.OnAttached(); } protected overrIDe voID OnDetaching() { Associatedobject.SelectionChanged -= AssociatedobjectOnSelectionChanged; base.OnDetaching(); } private voID AssociatedobjectOnSelectionChanged(object sender,SelectionChangedEventArgs args) { if (args.RemovedItems.Count > 0) { var oldTabItem = args.RemovedItems[0] as TabItem; if (oldTabItem != null) { var popups = VisualTreeHelper.GetopenPopups(); foreach (var popup in popups) { var tooltip = popup.Child as tooltip; if (tooltip != null) { if (VisualTreeHelper.GetRoot(tooltip.PlacementTarget) == oldTabItem.Content) { popup.IsOpen = false; } } } } } }}总结
以上是内存溢出为你收集整理的TabControl上剩余的验证工具提示全部内容,希望文章能够帮你解决TabControl上剩余的验证工具提示所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)