Wpf 属性不会第二次触发

Wpf 属性不会第二次触发,wpf,inotifypropertychanged,Wpf,Inotifypropertychanged,我有4个多边形 ... xmlns:cm="http://www.caliburnproject.org" ... <Polygon cm:Message.Attach=" [Event MouseEnter] = [Action OnMouseEnter($eventArgs)]; [Event MouseLeave] = [Action OnMouseLeave($eventArgs)]; [Event MouseDown] = [Action OnMouse

我有4个多边形

...
xmlns:cm="http://www.caliburnproject.org"
...
<Polygon cm:Message.Attach="
    [Event MouseEnter] = [Action OnMouseEnter($eventArgs)];
    [Event MouseLeave] = [Action OnMouseLeave($eventArgs)];
    [Event MouseDown]  = [Action OnMouseDown($eventArgs)]">
    <Polygon.ToolTip>
        <ToolTip Visibility="{Binding Path=TooltipVisibility}" >
...
其他对象上的ISTOLTIPVISION从第三位更改为第三位。我试图执行
NotifyOfPropertyChange(()=>myObject.TooltipVisibility),我尝试运行了
NotifyOfPropertyChange(()=>otherObject.IsTooltipVisibility)

有趣的是,如果我将鼠标悬停在一个多边形上,它会显示工具提示,然后我将iStolTipVisibility(通过点击菜单栏中的菜单按钮)更改为false,它不会在第二个多边形上显示工具提示,但仍会在第一个多边形上显示工具提示。第三个不会显示工具提示。更改为true,第四个将显示,但第二个和第三个不会显示


TooltipVisibility属性仅执行一个。我怎样才能让它一直执行?

这真是一个奇怪的解决方案。它起作用了。也许应该这样做。但我觉得太复杂了。它应该更简单,代码更少

    public void SetTooltipVisibility(bool toShowTooltip) {
        if (toShowTooltip) {
            _tooltipVisibility = "Visible";
        }
        else {
            _tooltipVisibility = "Hidden";
        }
        NotifyOfPropertyChange(() => TooltipVisibility);
    }

    private string _tooltipVisibility = "Visible";
    public string TooltipVisibility {
        get {
            return _tooltipVisibility;
        }
    }
而不是仅仅设置一个标志

OtherObject.IsTooltipVisibility = true;
额外性我需要

liistOfMyObjects.Apply(o=>o.SetTooltipVisibility(OtherObject.IsTooltipVisibility));
这不是最好的解决办法


我正在等待专业人士展示如何以正确的方式完成这项工作。

这真是一个奇怪的解决方案。它起作用了。也许应该这样做。但我觉得太复杂了。它应该更简单,代码更少

    public void SetTooltipVisibility(bool toShowTooltip) {
        if (toShowTooltip) {
            _tooltipVisibility = "Visible";
        }
        else {
            _tooltipVisibility = "Hidden";
        }
        NotifyOfPropertyChange(() => TooltipVisibility);
    }

    private string _tooltipVisibility = "Visible";
    public string TooltipVisibility {
        get {
            return _tooltipVisibility;
        }
    }
而不是仅仅设置一个标志

OtherObject.IsTooltipVisibility = true;
额外性我需要

liistOfMyObjects.Apply(o=>o.SetTooltipVisibility(OtherObject.IsTooltipVisibility));
这不是最好的解决办法

我正在等待一位专业人士展示如何以正确的方式完成这项工作