我正在使用類似於visio的WPF應用程序。我希望能夠對我圖中的一些項目進行邏輯分組,其中每個項目都是UIElement,並控制組級別的某些行爲(即可見性)。WPF綁定到另一個對象的DependencyProperty?
我第一次嘗試創建一個名爲Group的控件,它的寬度爲& height = 0我想通過它的group屬性爲我的圖元指定一個特定的「Group」,然後綁定某個UIElement屬性值如下:
<DiagramNode
Width="300" Height="300"
Visibility="{Binding RelativeSource={RelativeSource Self},Path=Group.Visibility}"
> ... </DiagramNode >
儘管這不會引發綁定錯誤,但它也不起作用。更改組的可見性對分配給該組的節點的可見性沒有影響。據我所知,任何時候都不會出現任何錯誤,但它不起作用。
任何想法?我的方法可行嗎?如果不是,任何人都有他們想要的建議:)。我不是一個大UI用戶,在服務層感覺更舒適,所以我願意接受其他建議。
感謝您的答覆阿維亞德。 我相信我的Group對象爲Visibility屬性實現了INotifyPropertyChanged,因爲我的Group對象從UserControl繼承。你會同意嗎? – Frank 2010-01-18 20:15:37
它是否也實際引發'Visibility'屬性設置器中的'PropertyChanged'事件?這必須明確地完成。 – 2010-01-18 20:19:07
UserControl不*執行INotifyPropertyChanged。但是,如果Group是UserControl,則Group.Visibility是一個依賴項屬性,因此不需要將更改通知提升爲綁定源。您可能想要發佈更多的組定義來幫助診斷問題。 – itowlson 2010-01-18 21:04:52