带有自定义项目模板的组合框,在选择值时显示模板,而不显示文本

保罗·米兰达

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触发器需要检查是否有父母ComboBoxItemx: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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用自定义项目模板在ComboBox中显示所选项目

来自分类Dev

如何使用自定义模板在组合框中显示所选文本

来自分类Dev

Django自定义项目模板

来自分类Dev

Zabbix在触发器中显示自定义项目时削减其值

来自分类Dev

ComboBox项目的自定义项目模板

来自分类Dev

单击“新建”菜单后,显示要选择的我的自定义项目

来自分类Dev

VB.NET中带有自定义项目的列表框

来自分类Dev

带有自定义项目符号图像的CSS文本缩进

来自分类Dev

iOS UICollectionView带有自定义项目错误?

来自分类Dev

具有自定义ArrayAdapter的ListView不显示项目

来自分类Dev

如何在其他页面上显示带有自定义字段的模板页面

来自分类Dev

angularJS:通过自定义指令的模板不显示特殊字符

来自分类Dev

如何在Code :: blocks中使用自定义项目模板

来自分类Dev

在VS 2010中为我的Web应用程序创建自定义项目模板

来自分类Dev

使用Build <T>时,将忽略“带有”的自定义-的自定义项

来自分类Dev

如何在使用文本输入元素的自定义Vaadin组合框中选择项目?

来自分类Dev

组合框自定义项和数据绑定项

来自分类Dev

组合框自定义项和数据绑定项

来自分类Dev

android-从列表视图中获取带有自定义项目视图的项目

来自分类Dev

为文本框标题应用自定义模板

来自分类Dev

为文本框标题应用自定义模板

来自分类Dev

带有虚线的自定义显示

来自分类Dev

如何获得显示自定义项目的首选项

来自分类Dev

对齐使用自定义项目符号点时自动换行的li文本

来自分类Dev

WPF - 应用程序中所有文本框的自定义错误模板

来自分类Dev

bootstrap ui-提前输入选择,不显示自定义值

来自分类Dev

bootstrap ui-提前输入选择,不显示自定义值

来自分类Dev

带有自定义项目类的QGraphicsScene :: removeItem()之后崩溃

来自分类Dev

Java Swing Jtree或带有自定义项目的Jlist

Related 相关文章

  1. 1

    使用自定义项目模板在ComboBox中显示所选项目

  2. 2

    如何使用自定义模板在组合框中显示所选文本

  3. 3

    Django自定义项目模板

  4. 4

    Zabbix在触发器中显示自定义项目时削减其值

  5. 5

    ComboBox项目的自定义项目模板

  6. 6

    单击“新建”菜单后,显示要选择的我的自定义项目

  7. 7

    VB.NET中带有自定义项目的列表框

  8. 8

    带有自定义项目符号图像的CSS文本缩进

  9. 9

    iOS UICollectionView带有自定义项目错误?

  10. 10

    具有自定义ArrayAdapter的ListView不显示项目

  11. 11

    如何在其他页面上显示带有自定义字段的模板页面

  12. 12

    angularJS:通过自定义指令的模板不显示特殊字符

  13. 13

    如何在Code :: blocks中使用自定义项目模板

  14. 14

    在VS 2010中为我的Web应用程序创建自定义项目模板

  15. 15

    使用Build <T>时,将忽略“带有”的自定义-的自定义项

  16. 16

    如何在使用文本输入元素的自定义Vaadin组合框中选择项目?

  17. 17

    组合框自定义项和数据绑定项

  18. 18

    组合框自定义项和数据绑定项

  19. 19

    android-从列表视图中获取带有自定义项目视图的项目

  20. 20

    为文本框标题应用自定义模板

  21. 21

    为文本框标题应用自定义模板

  22. 22

    带有虚线的自定义显示

  23. 23

    如何获得显示自定义项目的首选项

  24. 24

    对齐使用自定义项目符号点时自动换行的li文本

  25. 25

    WPF - 应用程序中所有文本框的自定义错误模板

  26. 26

    bootstrap ui-提前输入选择,不显示自定义值

  27. 27

    bootstrap ui-提前输入选择,不显示自定义值

  28. 28

    带有自定义项目类的QGraphicsScene :: removeItem()之后崩溃

  29. 29

    Java Swing Jtree或带有自定义项目的Jlist

热门标签

归档