如何在触发器上使选定项文本变为红色和粗体(在组合框中)

亚历山德拉·尤雷尼亚

我遇到了这个问题:如果我从我的组合框中选择项目并且它的属性 .IsNotCorrect 为真,那么将这个 selecteditem 文本设为红色和粗体,并且组合框中的所有其他项目都是黑色的。这是我这样做的尝试,但没有任何反应:

<ComboBox x:Name="REASON_ID" DisplayMemberPath="Name" IsReadOnly="True" IsEditable="True" 
    SelectedItem="{Binding SelectedReason, Mode=TwoWay, 
    UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}">                                                   
    <ComboBox.ItemsSource>                                                        
        <CompositeCollection>
            <ComboBoxItem Content="{DynamicResource lang_Common_SelectItem}"
                          IsEnabled="False"/>
            <CollectionContainer
                 Collection="{Binding Source={StaticResource StaticReasons}}"/>

            <Style TargetType="{x:Type ComboBoxItem}">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Path=SelectedItem.IsNotCorrect, ElementName=REASON_ID}" Value="True">
                        <Setter Property="Foreground" Value="Red" />
                        <Setter Property="FontWeight" Value="Bold" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>

        </CompositeCollection>
    </ComboBox.ItemsSource>
</ComboBox> 
雷克希诺

如果需要,下拉列表中的所有项目(IsNotCorrect粗体和红色),然后从显示的集合中删除您的样式并将其放入ComboBox.Resources. 绑定也应该调整:

<ComboBox.Resources>
    <Style TargetType="{x:Type ComboBoxItem}">
        <Style.Triggers>
            <DataTrigger Binding="{Binding IsNotCorrect}" Value="True">
                <Setter Property="Foreground" Value="Red" />
                <Setter Property="FontWeight" Value="Bold" />
            </DataTrigger>
        </Style.Triggers>
    </Style>
</ComboBox.Resources>

如果你想改变文本字段中的代表性,那么你必须修改ControlTemplateComboBox

  • ControlTemplateComboBox的默认值(参见ComboBox 样式和模板)复制Resourcesof 元素,其中包含您的 ComboBox。
  • 更改<Style x:Key="{x:Type ComboBox}"<Style x:Key="UsrDefinedStyle"在复制的代码。
  • 在复制的代码中查找TextBox名称PART_EditableTextBox删除Style="{x:Null}"
  • 将您的样式设置ComboBoxStyle="{StaticResource UsrDefinedStyle}"
  • 放入Resources您的ComboBox:

    <Style TargetType="{x:Type TextBox}" BasedOn="{x:Null}">
       <Style.Triggers>
          <DataTrigger Binding="{Binding SelectedItem.IsNotCorrect, RelativeSource={RelativeSource AncestorType=ComboBox}}" Value="True">
              <Setter Property="Foreground" Value="Red" />
              <Setter Property="FontWeight" Value="Bold" />
          </DataTrigger>
       </Style.Triggers>
    </Style>
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 Concourse 管道中组合触发器:git 和时间资源?

如何在插入和更新上使用触发器?

Javascript中的选定文本事件触发器

Html 中的红色和粗体文本

如何在触发器中设置和使用变量?

如何在javascript中使选定的文本变为粗体/斜体/下划线?

如何在Python中使文本变为粗体?

如何在HTML中使文本变为粗体?

如何在触发器的设置器中的一部分文本上设置前景?

Notepad++ 中如何使文本变为粗体

如何在WinForms的组合框中使选定项居中对齐?

如何在使用dataGrid的selectedItem的文本框中使用数据触发器?

在功能触发器上显示和隐藏文本

如何在列表中的按钮上使用间隔来触发触发器

如何从一个触发器和一个情节提要中定位应用程序中的所有文本框

为什么我的CSS不会使文本变为粗体和红色

如何在SQL Server过程/触发器中查找文本?

当我在 C# 中重新打开表单时如何在按钮上获取选定的组合框项目和文本

如何在不使用 C# 中的序列化的情况下重新打开表单时在按钮上获取选定的组合框项目和文本

如何在javascript中以编程方式使一些文本变为粗体?

如何使JList中的一项变为粗体?

如何在复合触发器上设置覆盖?

如何在触发器上更改精灵图像?

如何在新行上创建触发器mysql?

如何在控制台中使输入文本变为粗体?

如何在PHP mail()中使文本变为粗体?

选择后如何在导航抽屉中使文本变为粗体?

如何使指定的文本变为红色

如何在Oracle的触发器中获取其他表上的值