В приложении WPF у меня есть пользовательский элемент управления.
public class MyControl : Control
{
static MyControl()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(MyControl), new FrameworkPropertyMetadata(typeof(MyControl)));
}
public static readonly DependencyProperty ControlStatusProperty = DependencyProperty.Register("ControlStatus", typeof(int), typeof(MyControl), new PropertyMetadata(16));
public int ControlStatus
{
get
{
return (int)GetValue(ControlStatusProperty);
}
set
{
SetValue(ControlStatusProperty, value);
ChangeVisualState(false);
}
}
...
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
...
ToolTipService.SetToolTip(this, "Status: " + ControlStatus);
}
private void ChangeVisualState(bool useTransitions)
{
...
ToolTipService.SetToolTip(this, "Status: " + ControlStatus);
}
Проблема в том, что во всплывающей подсказке всегда отображается значение свойства ControlStatus
, которое было на момент выполнения OnApplyTemplate()
метода.
Свойство ControlStatus
пользовательского элемента управления было изменено во время выполнения, но во всплывающей подсказке всегда отображается начальное значение.
Как сделать так, чтобы во всплывающей подсказке пользовательского элемента управления всегда отображалось текущее значение свойства пользовательского элемента управления?