代码之家  ›  专栏  ›  技术社区  ›  Jay

WPF工具提示绑定未更新

  •  2
  • Jay  · 技术社区  · 15 年前

    大家下午好,

    我创建工具提示对象的单个全局实例。我已经绑定了其中的控件,我的应用程序设置了工具提示的datacontext。我可以手动显示和隐藏工具提示只是罚款。当我第一次将鼠标悬停在一个对象上时,它会完美地拾取绑定的数据,效果非常好。当我移到另一个控件上时,工具提示datacontext会更改,但显示的数据永远不会重新加载。

    我尝试实现一个属性更改事件,并在绑定到的对象中使用INotifyPropertyChanged接口。wpf工具提示似乎没有侦听事件。

    我尝试将绑定模式设置为单向(这是一个仅显示的工具提示)。

    // build the tooltip window.
    System.Windows.Controls.Image img = new System.Windows.Controls.Image();
    img.Width = 50;
    img.Height = 60;
    
    // bind the image
    System.Windows.Data.Binding imageBinding = new System.Windows.Data.Binding("PatientImage.Data");
    imageBinding.Mode = System.Windows.Data.BindingMode.OneWay;
    imageBinding.Source = bed;
    img.SetBinding(System.Windows.Controls.Image.SourceProperty, imageBinding);
    
    // wrap image in a border
    System.Windows.Controls.Border brdr = new System.Windows.Controls.Border();
    brdr.BorderBrush = System.Windows.Media.Brushes.Blue;
    brdr.Margin = new System.Windows.Thickness(6);
    brdr.Child = img;
    
    System.Windows.Controls.WrapPanel wp = new System.Windows.Controls.WrapPanel();
    
    System.Windows.Controls.TextBlock tb = new System.Windows.Controls.TextBlock();
    tb.Background = System.Windows.Media.Brushes.LightBlue;
    tb.Foreground = System.Windows.Media.Brushes.Blue;
    
    // bind the text block
    System.Windows.Data.Binding textBlockBinding = new System.Windows.Data.Binding("TooltipText");
    textBlockBinding.Mode = System.Windows.Data.BindingMode.OneWay;
    textBlockBinding.Source = bed;
    tb.SetBinding(System.Windows.Controls.TextBlock.TextProperty, textBlockBinding);
    
    wp.Children.Add(brdr);
    wp.Children.Add(tb);
    
    bedTooltip = new System.Windows.Controls.ToolTip();
    bedTooltip.Content = wp;
    

    1 回复  |  直到 13 年前
        1
  •  0
  •   brunnerh    13 年前

    绑定指定 Source