gpt4 book ai didi

c# - DatagridTemplateColumn 中的动态

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

如果 value in row = "No payment"我需要在数据模板中显示组合框,否则我不在行中显示组合框,我该怎么做?

这是我的数据网格模板:

<DataGridTemplateColumn Header="Time">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock VerticalAlignment="Center" Text="{Binding date_payment, Converter={StaticResource ByteArrayConverter}}" Width="135" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox IsReadOnly="False" SelectionChanged="ComboBox_SelectionChanged_1" Style="{DynamicResource ComboBoxStyle}" Height="Auto" ItemsSource="{Binding}" Width="135">
<ComboBox.BorderBrush>
<SolidColorBrush Color="{DynamicResource Color1}"/>
</ComboBox.BorderBrush>
<ComboBox.Items>
<ComboBoxItem>Payment</ComboBoxItem>
</ComboBox.Items>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>

我认为需要使用事件 LoadinRow,但我想不到,如果我设置了 Name 那么我的组合框是不可见的(在代码中)?

求助!谢谢:)


回答:

<Setter Property="Visibility" Value="Hidden"/>
<Style.Triggers>
<DataTrigger Binding="{Binding date_payment, Converter={StaticResource ByteArrayConverter}}" Value="Не оплачено">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
...

最佳答案

您无需注册参加事件。只需在您的 ComboBox 声明中创建一个 DataTrigger

 <ComboBox>
<ComboBox.Triggers>
<DataTrigger Binding="{Binding [Name of your property]}" Value="No payment">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</ComboBox.Triggers>
</ComboBox>

另一种(可能更好)方法是在您绑定(bind)的对象上实现一个属性,并使用一个 bool 值指示客户的当前状态(例如,NoPayment 等)。然后,您可以使用将此状态转换为目标 Visibility 值的转换器将此值绑定(bind)到 ComboBoxes Visibility 属性。

关于c# - DatagridTemplateColumn 中的动态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11556266/

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