gpt4 book ai didi

c# - 我如何在 wpf 中为组合框的选定项目编写项目模板

转载 作者:太空宇宙 更新时间:2023-11-03 14:16:59 25 4
gpt4 key购买 nike

我已经为 wpf 组合框创建了一个项目模板,以显示组合框项目中的多个属性和对象。

<ComboBox x:Name="cmbType" Grid.Column="2" Grid.Row="0" Grid.ColumnSpan="1"
SelectedItem="{Binding Current.Type, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsEditable="False"
ItemsSource="{Binding Types, Mode=OneWay}" DropDownClosed="cmbIncidentType_DropDownClosed" TabIndex="601">
<ComboBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="10" />
<ColumnDefinition Width="4" />
<ColumnDefinition Width="*" />

</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding ID}" />
<TextBlock Grid.Column="2" Text="{Binding Name}" />
</Grid>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>

到目前为止它是完美的,它在组合框项目中同时显示类型的 ID 和名称,但现在我希望当我选择一个项目时,它应该只在组合框的文本区域中显示所选项目的名称,而不是同时显示 ID 和姓名。

有人可以帮忙吗?

最佳答案

可以使用触发器隐藏ComboBox显示区域的ID:

<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding ID}" Margin="0,0,4,0">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ComboBoxItem}, Path=IsSelected}" Value="{x:Null}">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
<TextBlock Text="{Binding Name}"/>
</StackPanel>
</DataTemplate>

关于c# - 我如何在 wpf 中为组合框的选定项目编写项目模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6340367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com