我尝试显示基于SelectedIndex
值的控件,到目前为止我做了什么:
<UserControl.Resources>
<BooleanToVisibilityConverter x:Key="b2v" />
</UserControl.Resource>
<ComboBox Grid.Column="1" Grid.Row="4" Margin="8,0,8,16" x:Name="FormTypeFilters" SelectedIndex="0">
<ComboBoxItem Content="All" />
<ComboBoxItem Content="Home" />
<ComboBoxItem Content="Away" />
</ComboBox>
所以我BooleanToVisibilityConverter
提供了System.Windows.Controls
,而我ComboBox
有三个项目。
我还有三个DataGrid
,例如我只发布声明(没有列):
<DataGrid Visibility="{Binding SelectedIndex, ElementName=FormTypeFilters, Converter={StaticResource b2v}}" />
<DataGrid Visibility="{Binding SelectedIndex, ElementName=FormTypeFilters, Converter={StaticResource b2v}}" />
<DataGrid Visibility="{Binding SelectedIndex, ElementName=FormTypeFilters, Converter={StaticResource b2v}}" />
我坚持这一点,我需要知道如何告诉BooleanConverter
当用户选择索引0时必须显示DataGrid 1,而当用户选择索引1时需要显示Datagrid 2,等等...
答案 0 :(得分:0)
您可以使用DataTrigger
来设置DataGrids的可见性,而不是绑定转换器。
<DataGrid>
<DataGrid.Style>
<Style TargetType="DataGrid">
<Setter Property="Visibility" Value="Hidden"/>
<Style.Triggers>
<DataTrigger Binding="{Binding SelectedIndex, ElementName=FormTypeFilters}"
Value="0">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.Style>
</DataGrid>