我想知道如果我可以綁定我的按鈕isEnabled到我的StackPanel兒童(有子女)。如果堆疊面板有孩子,那麼我的按鈕被啓用,沒有孩子我的按鈕被禁用。目前我只是在代碼中處理這個問題,但我開始想知道這是否是我可以綁定的東西。感謝您的任何想法...綁定按鈕被啓用到StackPanel有孩子
回答
事實上,因爲你對付一個布爾值,你可以顛倒邏輯和做沒有轉換器:
<StackPanel Name="sp" />
<Button Content="A Button">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=sp, Path=Children.Count}" Value="0">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
利用這一點,你在獲得更新方面遇到了一些問題,因爲Children.Count
是不是一個DP,可以使用ItemsControl
但要解決這個問題(它幾乎表現得像StackPanel
默認):
<ItemsControl Name="ic" />
<Button Content="A Button">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=ic, Path=Items.Count}" Value="0">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
你可以寫一個簡單的ValueConverter爲你做這個邏輯。將Button的IsEnabled綁定到StackPanel,並在你的值轉換器中檢查它是否有子節點,然後返回true/false。
這可能是最簡單的方法來完成它,但我不知道當你將子項添加到堆棧面板時它會更新嗎? – Tim 2011-05-16 21:05:17
首先,我會直接綁定到孩子。但是,兒童不是一個依賴屬性,所以它不會更新,因爲沒有任何通知有任何變化:(所以你必須手動觸發更新。 – 2011-05-17 07:12:02
一個簡單的解決方案(無需ItemsPanel
)比HB的可能被綁定到ActualHeight
StackPanel
的財產,因爲如果沒有子女在場,它的大小將爲0。
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=sp, Path=ActualHeight}" Value="0">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
您可能需要使用VerticalAlignment="Top"
爲StackPanel
,如果它不能正常收縮。
- 1. 綁定按鈕被啓用到屬性
- 2. 如何綁定到stackpanel子項?
- 3. Stackpanel在按鈕
- 4. 如何將啓用的按鈕綁定綁定到NSArrayController是否有選擇?
- 5. 綁定到祖先StackPanel DockPanel.Dock
- 6. 綁定StackPanel
- 7. 離子綁定數到按鈕
- 8. WPF按鈕調用StackPanel visibilityconverter
- 9. 按鈕內的StackPanel
- 10. Tkinter按鈕是否可以有孩子?
- 11. 如何從ViewModel綁定StackPanel子項?
- 12. WPF綁定mvvm StackPanel
- 13. WPF C#按鈕綁定和文本框到按鈕綁定
- 14. 將按鈕綁定到GridView
- 15. 綁定ICommand到按鈕?
- 16. 綁定有效的複選框,以啓用按鈕angularjs 1.2.x
- 17. 添加擴展按鈕到Stackpanel
- 18. 如何動態添加按鈕到StackPanel
- 19. 如何設計Stackpanel的孩子?
- 20. 重新排序StackPanel中的孩子? Win8
- 21. 啓用子窗體按鈕
- 22. Stackpanel按鈕單擊刪除
- 23. 將圖像列表綁定到StackPanel
- 24. 將USercontrol的集合綁定到Stackpanel
- 25. 將StackPanel的實例綁定到XAML
- 26. 命令參數不會綁定到StackPanel?
- 27. 將groupboxes綁定到可能的stackpanel
- 28. 按鈕沒有被按鈕
- 29. 將按鈕綁定到Alt按鍵?
- 30. 將StackPanel綁定到添加子元素的方法
這是非常酷,謝謝! – Terco 2011-05-16 23:03:30
很高興幫助:) – 2011-05-16 23:08:40