我有一个包含列表框的UserControl。
在父窗口中,我有这个UserControl和一个按钮。
理想情况下,我想在parent按钮上使用ChangePropertyAction行为,并将其绑定到UserControl的列表框计数。
这个想法是,如果usercontrol中的列表框中没有条目,则隐藏父窗口上的按钮。列表框绑定到observablecollection。
我是否创建了DependencyProperty来执行此操作?我不知道如何将列表框的计数绑定到此属性。
非常感谢您对正确方法的深入了解。
答案 0 :(得分:0)
您可以使用ElementName
绑定从ListBox
到达Button
状态。然后,您想使用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
以查看其有效...
答案 1 :(得分:0)
我最终使用了MVVM Futures项目中的Messenger类,让UserControl的ViewModel向其他ViewModel发出信号。
这让我们的多个侦听器监视相同的更改,而不需要额外的依赖属性。