我ComboBox
用这样的自定义项目模板创建了一个:
<ComboBox ItemsSource="{Binding Clases}" SelectedValue="{Binding Clase}" Style="{StaticResource ComboBoxStyle}" Grid.Column="0">
<ComboBox.ItemContainerStyle>
<Style TargetType="ComboBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ComboBox.ItemContainerStyle>
<ComboBox.ItemTemplate>
<DataTemplate>
<Grid Margin="0 2">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<TextBlock Text="{Binding CLASE}" VerticalAlignment="Center"/>
</Grid>
<Button Command="{Binding DataContext.BorrarClaseCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" CommandParameter="{Binding}" ToolTip="BORRAR CLASE" Grid.Column="1">
<materialDesign:PackIcon Kind="Delete"/>
</Button>
</Grid>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
将ComboBox
被绑定到Clase
视图中的模型值。Clase
是类型CLASE_TYPE
为以下类型的变量:
public partial class CLASE_TYPE
{
public decimal ID { get; set; }
public string CLASE { get; set; }
}
结果看起来像这样:
当我选择一个值时,问题就来了,所选值显示ComboBox
如下:
我怎样才能避免这种情况,仅显示的值CLASE
的的CLASE_TYPE
课吗?
您可以给按钮起一个名字,并在数据模板中添加一个触发器,通过将其设置为Visibility
来隐藏按钮Collapsed
。触发器需要检查是否有父母ComboBoxItem
(x:Null
),检查IsSelected
不起作用。
<DataTemplate>
<Grid Margin="0 2">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<TextBlock Text="{Binding CLASE}" VerticalAlignment="Center"/>
</Grid>
<Button x:Name="BorrarClaseButton" ToolTip="BORRAR CLASE" Grid.Column="1">
<materialDesign:PackIcon Kind="Delete"/>
</Button>
</Grid>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type ComboBoxItem}}}" Value="{x:Null}">
<Setter TargetName="BorrarClaseButton" Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
另外,您可以为按钮创建一个样式相同的样式。
<Button ToolTip="BORRAR CLASE" Grid.Column="1">
<Button.Style>
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type ComboBoxItem}}}" Value="{x:Null}">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<materialDesign:PackIcon Kind="Delete"/>
</Button>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句