【问题标题】:Property is not triggered second time属性未第二次触发
【发布时间】:2016-05-31 15:56:40
【问题描述】:

我有 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}" >
...

在我的画布上。

工具提示可见性代码:

    public string TooltipVisibility {
        get {
            if (OtherObject.IsTooltipVisibility) {
                return "Visible";
            }
            else {
                return "Hidden";
            }
        }
    }

OtherObject 上的 IsTooltipVisibility 从第 3 位更改。我尝试执行NotifyOfPropertyChange(() =&gt; myObject.TooltipVisibility );,我尝试运行NotifyOfPropertyChange(() =&gt; otherObject.IsTooltipVisibility);

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

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

【问题讨论】:

    标签: wpf inotifypropertychanged


    【解决方案1】:

    这真是一个奇怪的解决方案。有用。也许它应该以这种方式工作。但我认为这太复杂了。它应该更简单,代码更少。

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

    不是最好的解决方案。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-12
      • 2021-11-27
      • 2015-09-03
      • 1970-01-01
      • 2013-08-20
      • 1970-01-01
      • 1970-01-01
      • 2019-08-13
      相关资源
      最近更新 更多