【问题标题】:Managing mandatory fields with triggers使用触发器管理必填字段
【发布时间】:2011-02-26 00:14:47
【问题描述】:

我想设置必填字段背景为红色,其他为绿色。所以我尝试在下面实现。但我无法用触发器控制 ValueConstraint Nullable 属性。你能帮忙吗?

<Window x:Class="TriggerGirilmesigerekenalanlar.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:y="http://infragistics.com/Editors"
    Title="Window1" Height="300" Width="300">
    <Window.Resources>
        <Style TargetType="{x:Type y:XamTextEditor}">
            <Style.Triggers>
                <Trigger Property="ValueConstraint" Value="{x:Null}">
                    <Trigger.Setters>
                        <Setter Property="Background" Value="green"></Setter>
                    </Trigger.Setters>
                </Trigger>
                <Trigger Property="y:ValueConstraint.Nullable" Value="false">
                    <Trigger.Setters>
                        <Setter Property="Background" Value="red"></Setter>
                    </Trigger.Setters>
                </Trigger>
            </Style.Triggers>
        </Style>
    </Window.Resources>
    <StackPanel>
        <y:XamTextEditor>
            <y:XamTextEditor.ValueConstraint>
                <y:ValueConstraint Nullable="False" ></y:ValueConstraint>
            </y:XamTextEditor.ValueConstraint>
        </y:XamTextEditor>
        <y:XamTextEditor></y:XamTextEditor>
    </StackPanel>
</Window>

实际上它给出了错误。

错误 1 ​​无法解析样式属性“可空”。验证所属类型是否为 Style 的 TargetType,或使用 Class.Property 语法来指定 Property。第 15 行位置 26。D:\Deneme proje\TriggerGirilmesigerekenalanlar\Window1.xaml 15 26 TriggerGirilmesigerekenalanlar

【问题讨论】:

    标签: wpf xaml properties triggers controls


    【解决方案1】:

    试试这个:

    <Style.Triggers>
        <Trigger Property="ValueConstraint.Nullable" Value="{x:Null}">
            <Trigger.Setters>
                <Setter Property="Background" Value="Green"></Setter>
            </Trigger.Setters>
        </Trigger>
        <Trigger Property="ValueConstraint.Nullable" Value="false">
            <Trigger.Setters>
                <Setter Property="Background" Value="Red"></Setter>
            </Trigger.Setters>
        </Trigger>
    </Style.Triggers>
    

    【讨论】:

      【解决方案2】:

      这就是答案。

        <Style TargetType="{x:Type y:XamTextEditor}">
                  <Style.Triggers>
                      <MultiDataTrigger>
                          <MultiDataTrigger.Conditions>
                              <Condition Binding="{Binding Path=ValueConstraint.Nullable, RelativeSource={RelativeSource Self}}" Value="false" />
                              <Condition Binding="{Binding Path=IsReadOnly, RelativeSource={RelativeSource Self}}" Value="false" />
                              <Condition Binding="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}}" Value="true" />
                              <Condition Binding="{Binding Path=Visibility, RelativeSource={RelativeSource Self}}" Value="Visible" />
                          </MultiDataTrigger.Conditions>
                          <Setter Property="Background" Value="red"></Setter>
                      </MultiDataTrigger>
                  </Style.Triggers>
              </Style>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-02
        • 2013-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多