从其他Xaml文件绑定到Usercontrol中的元素

Mar*_*ijn 3 c# wpf xaml binding multidatatrigger

谁能告诉我如何绑定到Usercontrol的元素?

我试图使用与IDataErrorInfo一起使用的数据触发器来禁用/启用按钮。

所以当元素在同一视图上时,我通常这样做

  <Button Name="AddEditButton" Content="{Binding ButtonContent}" Command="{Binding AddCustomerCommand}" HorizontalAlignment="Center"  Margin="0 10" >
        <Button.Style>
            <Style TargetType="{x:Type Button}">
                <Setter Property="IsEnabled" Value="false" />
                <Style.Triggers>
                    <MultiDataTrigger>
                        <MultiDataTrigger.Conditions>
                            <Condition Binding="{Binding ElementName=CustomerFirstNameTextBox, Path=(Validation.HasError)}" Value="false" />
                            <Condition Binding="{Binding ElementName=CustomerLastNameTextBox, Path=(Validation.HasError)}" Value="false" />
                            <Condition Binding="{Binding ElementName=CustomerEmailTextBox, Path=(Validation.HasError)}" Value="false" />
                            <Condition Binding="{Binding ElementName=CustomerPhoneTextBox, Path=(Validation.HasError)}" Value="false" />
                            <Condition Binding="{Binding ElementName=CustomerCellphoneTextBox, Path=(Validation.HasError)}" Value="false" />

                        </MultiDataTrigger.Conditions>
                        <Setter Property="IsEnabled" Value="true" />
                    </MultiDataTrigger>
                </Style.Triggers>
            </Style>
        </Button.Style>
    </Button>
Run Code Online (Sandbox Code Playgroud)

但是现在我需要添加一个条件,该条件绑定到我的视图正在使用的Usercontrol(AdressControl)上的控件。

我希望可以像这样轻松访问usercontrol的元素

<Condition Binding="{Binding ElementName=AddressControl , Path=StreetTextBox.(Validation.HasError)}" Value="false"  />
Run Code Online (Sandbox Code Playgroud)

但无济于事。任何帮助将非常感激

sa_*_*213 5

FindAncestor应正确解决该房产

  <Condition Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type AddressControl}}, Path=StreetTextBox.(Validation.HasError)}" Value="false"  />
Run Code Online (Sandbox Code Playgroud)

这样就可以通过可视化树进行查找,以查找类型AddressControl并解析该属性。