根據類中某個屬性的值,是否可以隱藏/顯示一個Adorner?使用屬性控制裝飾者的可見性?
我應該爲此使用附加屬性嗎?
如果是這樣,Adorner的可見度究竟如何控制;是否必須手動刪除它/將它添加到Dependency Object的OnChanged事件中的Adorner Layer?
這只是我想要做一個非常快速的代碼表示:
(注意:我甚至不知道它做事的正確方法我想裝飾器的知名度。由我的業務模型中的代碼修改的屬性的值來控制。附加屬性的問題是控件的責任是更新屬性的值而不是業務域中的代碼。)
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
}
}
}
可以提供一些代碼嗎? – Tigran
在帖子中添加了一個快速代碼示例。我只是想出了它,但它應該給出我想要做的事情的一個概念。 –