如果行中的值=“没有付款”我需要在数据模板中显示ComboBox,否则我不会在行中显示组合框,我该怎么做?
这是我的datagridtemplate:
<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>
...
答案 0 :(得分:2)
您无需注册参加活动。只需在DataTrigger
声明中创建ComboBox
。
<ComboBox>
<ComboBox.Triggers>
<DataTrigger Binding="{Binding [Name of your property]}" Value="No payment">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</ComboBox.Triggers>
</ComboBox>
另一种(可能更好的)方法是在您绑定的Object上实现一个Property,其中一个布尔值表示客户的当前状态(例如NoPayment等)。
然后,您可以使用转换器将此值绑定到ComboBox Visibility
属性,该转换器将此状态转换为目标Visibility
值。