Wpf 将自定义控件与父控件进行数据绑定
我有一个包含listbox的UserControl 在父窗口上,我有这个UserControl和一个按钮 理想情况下,我希望在parents按钮上使用ChangePropertyAction行为,并将其与UserControl的listbox计数联系起来 其思想是,如果usercontrol中的listbox中没有条目,则父窗口上的按钮将隐藏。列表框绑定到一个observablecollection 我是否创建DependencyProperty来执行此操作?但是,我不确定如何将列表框的计数绑定到此属性Wpf 将自定义控件与父控件进行数据绑定,wpf,data-binding,user-controls,Wpf,Data Binding,User Controls,我有一个包含listbox的UserControl 在父窗口上,我有这个UserControl和一个按钮 理想情况下,我希望在parents按钮上使用ChangePropertyAction行为,并将其与UserControl的listbox计数联系起来 其思想是,如果usercontrol中的listbox中没有条目,则父窗口上的按钮将隐藏。列表框绑定到一个observablecollection 我是否创建DependencyProperty来执行此操作?但是,我不确定如何将列表框的计数绑定
非常感谢您对正确方法的深入了解 您可以使用
元素名称
绑定从按钮
到达列表框
状态。然后,您需要使用一个BooleanToVisibilityConverter
来实现这一神奇功能
像这样:
<Window x:Class="NestedTreeTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="200" Width="300">
<Window.Resources>
<BooleanToVisibilityConverter x:Key="boolToVisibilityConverter" />
</Window.Resources>
<StackPanel>
<Button Visibility="{Binding ElementName=myList, Path=HasItems, Converter={StaticResource boolToVisibilityConverter}}">
Text
</Button>
<ListBox x:Name="myList">
<!--<ListBoxItem>Item A</ListBoxItem>-->
</ListBox>
</StackPanel>
</Window>
文本
注释掉,或者取消注释
ListBoxItems
以查看它是否工作…我最终使用了MVVM Futures项目中的Messenger类,让UserControl的ViewModel向其他ViewModels发出更改的信号
这让多个侦听器监视相同的更改,而不需要额外的依赖属性 谢谢你的帮助。但问题是listbox位于UserControl内部。所以在Window1上,它的内容更多:文本,我需要绑定到MyControl中的列表框。我不确定如何从UserControl中公开它是个问题。