2012-12-09 70 views
2

任何人都可以告訴我如何綁定到UserControl的元素?從其他Xaml文件綁定到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> 

但現在我需要添加結合上的用戶控件(AdressControl)的控制的條件我的看法。

我希望能方便地訪問該用戶控件的元素像這樣

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

,但無濟於事。任何幫助,將不勝感激

回答

4

FindAncestor應該解決該房產的正確

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

這睡牀簡單搜索回來,雖然視覺樹尋找AddressControl類型和解決財產。

+0

做了詭計,非常感謝 – Martijn

相關問題