Может ли Adorner быть скрытым / отображаться в зависимости от значения свойства в классе?
Должен ли я использовать прикрепленные свойства для этой цели?
Если это так, как именно можно контролировать видимость Adorner; мне нужно вручную удалить его / добавить его на слой Adorner в событии OnChanged объекта Dependency?
Это просто очень быстрое представление кода того, что я пытаюсь сделать:
( Примечание : Я даже не уверен, правильно ли это делать. Я хочу, чтобы видимость Adorner контролировалась значением свойства, которое изменяется кодом в моем бизнесе Проблема с Attached Properties заключается в том, что ответственность за обновление значения свойства вместо кода в моем бизнес-домене лежит на контроллере.)
public static class IsValidBehavior
{
public static readonly DependencyProperty IsValidProperty = DependencyProperty.RegisterAttached("IsValid",
typeof(bool),
typeof(IsValidBehavior),
new UIPropertyMetadata(false, OnIsValidChanged));
public static bool GetIsValid(DependencyObject obj)
{
return (bool)obj.GetValue(IsValidProperty);
}
public static void SetIsValid(DependencyObject obj, bool value)
{
obj.SetValue(IsValidProperty, value);
}
private static void OnIsValidChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e)
{
UIElement element = dependencyObject as UIElement;
if (element == null)
return;
if ((bool)e.NewValue == true)
{
// Display the Adorner
}
else
{
// Hide the Adorner
}
}
}