当数据模板中的UserControl保持不可见时,整个ListBoxItem保持不可见,但我尝试过的所有操作都失败了。
<ListBox HorizontalContentAlignment="Center">
<ListBox.ItemTemplate>
<DataTemplate>
<Visual:uc_acessorio_fechado Acessorio="{Binding}"/> //when this element is collapsed, make the ListBoxItem collapsed
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
答案 0 :(得分:1)
这取决于您的控件如何设置自己的“可见性”:
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<Visual:uc_acessorio_fechado
Acessorio="{Binding}"
Visibility="{Binding Visibility,
RelativeSource={RelativeSource AncestorType=ListBoxItem},
Mode=OneWayToSource}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
它不适用于样式设置器,但例如分配本地属性值。
或者,您可以使用:
<ListBox>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<Visual:uc_acessorio_fechado x:Name="uc" Acessorio="{Binding}"/>
</DataTemplate>
</Setter.Value>
</Setter>
<Setter Property="Visibility" Value="{Binding Visibility, ElementName=uc}"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>