代码之家  ›  专栏  ›  技术社区  ›  rerun

Wpf组合框验证触发器

  •  1
  • rerun  · 技术社区  · 14 年前

    我的组合框的XAML

    <ComboBox Margin="0,3,0,3"  Width="40" Name="CATCODE" IsEditable="True" >
        <ComboBox.Text>
           <Binding Path="CategoryCode" >
               <Binding.ValidationRules>
                    <ExceptionValidationRule >
    
                    </ExceptionValidationRule>
               </Binding.ValidationRules>
           </Binding>
        </ComboBox.Text>
    </ComboBox>
    

    数据触发器

    <Style x:Key="DisbleOnValidation"  TargetType="Button">
        <Style.Triggers>
            <DataTrigger Binding="{Binding Path=Validation.HasError, ElementName=CATCODE}" Value="True" >
                <Setter Property="IsEnabled" Value="False"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>
    
    1 回复  |  直到 14 年前
        1
  •  6
  •   Fredrik Hedblad    14 年前

    尝试将路径从Validation.HasError更改为(Validation.HasError)

    <Style x:Key="DisbleOnValidation"  TargetType="Button">
        <Style.Triggers>
            <DataTrigger Binding="{Binding Path=(Validation.HasError), ElementName=CATCODE}" Value="True" >
                <Setter Property="IsEnabled" Value="False"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>
    

    绑定到附加属性时,应始终包含“(”…“)”。就像

    {Binding Path=(Grid.Row), ElementName=SomeElement}
    {Binding Path=(Canvas.Left), ElementName=SomeOtherElement}