我正在开发类似于visio的WPF应用程序。我希望能够逻辑地对我的图表中的一些项目进行分组,每个项目都是UIElement,并控制组级别的某些行为(即可见性)。
我的第一次尝试就是创建一个名为Group的控件,它具有宽度和宽度。 height = 0.我想通过他们的group属性为我的图元素分配一个特定的“Group”,然后将某些UIElement属性绑定到组值,如下所示:
<DiagramNode
Width="300" Height="300"
Visibility="{Binding RelativeSource={RelativeSource Self},Path=Group.Visibility}"
> ... </DiagramNode >
虽然这不会引发绑定错误,但它也不起作用。更改组的可见性不会影响分配给该组的节点的可见性。据我所知,在任何时候都没有出现错误,它只是不起作用。
有什么想法吗?我的方法可行吗?如果不是,任何人都有他们想建议的替代方案:)。我不是一个巨大的UI人,在服务层感觉更舒服,所以我愿意接受其他建议。
答案 0 :(得分:0)
如果在通过调试器运行时应用程序的跟踪中确实没有绑定错误,则问题可能出在更改通知中。您必须确保Visibility
对象的Group
属性在更改时提供更改通知。
这通常是通过在类上实现INotifyPropertyChanged
以及在set accessor中引发PropertyChanged
事件(如果值实际更改)来完成的。
答案 1 :(得分:0)
问题可能出在我的DiagramNode类的Group对象的属性声明中吗?
Public Class DiagramNode
...
Private _group As Group
Public Property Group() As Group
Get
Return Me._group
End Get
Set(ByVal value As Group)
Me._group = value
End Set
End Property
...
End Class