0

我正在开发一个类似于 visio 的 WPF 应用程序。我希望能够对图表中的一些项目进行逻辑分组,每个项目都是一个 UIElement,并在组级别控制某些行为(即可见性)。

我的第一次尝试是创建一个控件,称为 Group,它的宽度和高度 = 0。我想通过他们的 group 属性为我的图表元素分配一个特定的“Group”,然后将某些 UIElement 属性绑定到该组值,如下:

<DiagramNode  
         Width="300" Height="300" 
         Visibility="{Binding RelativeSource={RelativeSource Self},Path=Group.Visibility}"
         > ... </DiagramNode >

尽管这不会引发绑定错误,但它也不起作用。更改组的可见性不会影响分配给该组的节点的可见性。据我所知,任何时候都不会出现错误,它只是不起作用。

有任何想法吗?我的方法可行吗?如果没有,任何人都有他们想建议的替代方案:)。我不是一个庞大的 UI 人,在服务层感觉更舒服,所以我对其他建议持开放态度。

4

2 回答 2

0

如果通过调试器运行时应用程序的跟踪中确实没有绑定错误,那么问题可能出在更改通知中。您必须确保对象的Visibility属性在Group更改时提供更改通知。

这通常通过INotifyPropertyChanged在类上实现,并在 set 访问器中引发PropertyChanged事件(如果值实际更改)来完成。

于 2010-01-18T19:33:09.073 回答
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
于 2010-01-18T21:52:50.793 回答