gpt4 book ai didi

validation - TabControl 上的剩余验证工具提示

转载 作者:行者123 更新时间:2023-12-03 12:46:39 31 4
gpt4 key购买 nike

我对 TabControl 有疑问, 一个 TextBox和验证ToolTip .

想象一下有一个带有两个 TabItem 的 TabControl。第一项有一个简单的 TextBox .这个TextBox Text属性绑定(bind)到 UserControl 的字符串属性本身与 Mode=TwoWayValidatesOnExceptions=True .那个 Text 的二传手每当设置某些内容时,属性都会引发异常。
Resources UserControl 的部分包含 TextBox 的新默认样式和验证ToolTip (这些样式和模板取自 MSDN )。

现在在 TextBox 中输入一些内容并让验证 ToolTip出现:

enter image description here

然后切换到第二个选项卡。验证工具提示仍然存在:

enter image description here

我已经制作了一个包含 Silverlight 应用程序的 VS 解决方案来演示该问题。 VS 解决方案 zip 存档可用 here .

有没有人遇到过类似的问题,甚至有解决该问题的方法?

免责声明:有类似问题here on StackOverflow关于 Silverlight 4,大约一年半以来一直没有得到答复。
我已经在 silverlight.net 上发布了这个问题但是好几天没有回复。

最佳答案

我认为这是 TabControl 的错误-执行。我已经在我们的应用程序中实现了这个行为来解决这个问题:

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;
}
}
}
}
}
}
}

关于validation - TabControl 上的剩余验证工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11455507/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com