【问题标题】:How To Prevent Binding Refresh如何防止绑定刷新
【发布时间】:2016-10-04 05:28:11
【问题描述】:

在我的应用程序中,我将我的字符串属性绑定到文本块工具提示。 问题是我绑定的属性在运行时更新太频繁。所以每次更新工具提示时都会刷新,即使属性值是相同的。

以下是代码:

<TextBlock Text="{Binding Key}" Margin="0,1" ToolTip="{Binding stringProperty}"/> 

当 stringProperty 更新时,工具提示会刷新。我想绑定属性,并且我只想在更新的值不同或可能在很长一段时间后刷新工具提示。

【问题讨论】:

  • 其实是程序的设计。它需要经常更新,因为它来自实时通信。我只想阻止通知 UI 组件,即使绑定属性发生了变化。有可能吗?

标签: c# wpf xaml binding tooltip


【解决方案1】:

类似的东西。

    public string stringProperty
    {
        get { return _stringProperty; }
        set
        {
            if (!_stringProperty.Equals(value))
            {
                _stringProperty = value;
                OnPropertyChanged("stringProperty");  //Notify UI only if there is new value
            }
        }
    }

如果您愿意,可以将Compare 字符串与TrimCaseInsensitive 结合使用

【讨论】:

    【解决方案2】:
    private string _stringProperty;
    public string stringProperty
    {
        get { return _stringProperty; }
        set
        {
            if (!ReferenceEquals(_stringProperty, value))
            {
                _stringProperty = value;
                OnPropertyChanged("stringProperty");  
            }
        }
    }
    

    如果你使用ReferenceEquals,如果_stringPropertynull,它不会抛出NullReferenceException

    【讨论】:

      猜你喜欢
      • 2013-12-25
      • 2020-01-25
      • 2010-10-18
      • 2014-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多