0
我创建了UserControl
,它们扩展了ComboBox
的基本功能。检查是否有任何UserControl打开
<ComboBox
x:Name="MultiSelectCombo"
SnapsToDevicePixels="True"
OverridesDefaultStyle="True"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.CanContentScroll="True"
IsSynchronizedWithCurrentItem="True"
StaysOpenOnEdit="True"
Background="#61596f"
>
...
</ComboBox>
在页我用3个控件:
<controls:MultiSelectComboBox SelectedItems="{Binding SelectedCategories, Mode=TwoWay}" Grid.Column="0" Grid.Row="0" x:Name="CategoriesFilter" DefaultText="Category" ItemsSource="{Binding Categories }" Style="{StaticResource FiltersDropDowns}"/>
<controls:MultiSelectComboBox SelectedItems="{Binding SelectedTypes, Mode=TwoWay}" Grid.Column="1" Grid.Row="0" x:Name="TypesFilter" DefaultText="Type" ItemsSource="{Binding Types, Mode=TwoWay}" Style="{StaticResource FiltersDropDowns}"/>
<controls:MultiSelectComboBox SelectedItems="{Binding SelectedBrandsList, Mode=TwoWay}" Grid.Column="2" Grid.Row="0" x:Name="BrandsFilter" DefaultText="Brand" ItemsSource="{Binding BrandsList}" Style="{StaticResource FiltersDropDowns}"/>
我需要改变网元Overlay
的知名度此页面上的任何时候的组合框是打开的。
我该怎么办?按名称检查每个项目会产生太多的代码。 我想这一点,但不能让我控制的子项
<Grid.Style>
<Style TargetType="Grid">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, ElementName=ComboBoxToggleButton}" Value="True">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
其中ComboBoxToggleButton
是组合框的按钮,打开/关闭下拉
我已经添加转换器'公共对象转换(对象[]值,类型TARGETTYPE,对象参数,System.Globalization.CultureInfo培养) \t \t { \t \t \t VAR集合=(values.Select(System.Convert .ToBoolean)); \t \t \t var retValue = collection.Aggregate(false,(current,item)=> item || current); \t \t \t return retValue? “可见”:“折叠”; ''。目前转换器似乎工作正常,但网格始终可见 – demo
您必须返回Visibility.Visible或Visibility.Collapsed,而不是两个字符串。 – Giangregorio
也没有帮助...嗯 – demo