RelativeSource RelativeSource RelativeSource RelativeSource Class

Definição

Implementa uma extensão de marcação que descreve a localização da origem da associação com relação à posição do destino da associação.Implements a markup extension that describes the location of the binding source relative to the position of the binding target.

public ref class RelativeSource : System::Windows::Markup::MarkupExtension, System::ComponentModel::ISupportInitialize
[System.Windows.Markup.MarkupExtensionReturnType(typeof(System.Windows.Data.RelativeSource))]
public class RelativeSource : System.Windows.Markup.MarkupExtension, System.ComponentModel.ISupportInitialize
type RelativeSource = class
    inherit MarkupExtension
    interface ISupportInitialize
Public Class RelativeSource
Inherits MarkupExtension
Implements ISupportInitialize
Herança
RelativeSourceRelativeSourceRelativeSourceRelativeSource
Atributos
Implementações

Exemplos

O exemplo a seguir mostra um gatilho de estilo que ToolTip cria um que relata uma mensagem de erro de validação.The following example shows a style trigger that creates a ToolTip that reports a validation error message. Usando a RelativeSource Propriedade, o valor do setter é associado ao conteúdo do erro do atual TextBox ( TextBox usando o estilo).Using the RelativeSource property, the value of the setter binds to the error content of the current TextBox (the TextBox using the style). Para obter mais informações sobre este exemplo, consulte Como: Implementar validaçãode associação.For more information on this example, see How to: Implement Binding Validation.

<Style x:Key="textBoxInError" TargetType="{x:Type TextBox}">
  <Style.Triggers>
    <Trigger Property="Validation.HasError" Value="true">
      <Setter Property="ToolTip"
        Value="{Binding RelativeSource={x:Static RelativeSource.Self},
                        Path=(Validation.Errors)/ErrorContent}"/>
    </Trigger>
  </Style.Triggers>
</Style>

O exemplo a seguir mostra Style a definição de um controle personalizado NumericUpDownchamado.The following example shows the Style definition of a custom control called NumericUpDown. A Text Value propriedade TemplatedParent NumericUpDown de é associada ao do objeto que é o, que é o controle ao qual ele Style é aplicado nesse caso. TextBlockThe Text property of the TextBlock is bound to the Value of the object that is the TemplatedParent, which is the NumericUpDown control that this Style is applied to in this case.

<!--ControlTemplate for NumericUpDown that inherits from
    Control.-->
<Style TargetType="{x:Type local:NumericUpDown}">
  <Setter Property="HorizontalAlignment" Value="Center"/>
  <Setter Property="VerticalAlignment" Value="Center"/>
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="{x:Type local:NumericUpDown}">
        <Grid Margin="3">
          <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
          </Grid.RowDefinitions>
          <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
          </Grid.ColumnDefinitions>

          <Border BorderThickness="1" BorderBrush="Gray" 
                  Margin="2" Grid.RowSpan="2" 
                  VerticalAlignment="Center" HorizontalAlignment="Stretch">
                  
            <TextBlock Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Value}" 
                       Width="60" TextAlignment="Right" Padding="5"/>
          </Border>
          
          <RepeatButton Command="{x:Static local:NumericUpDown.IncreaseCommand}"  
                        Grid.Column="1" Grid.Row="0">Up</RepeatButton>
                        
          <RepeatButton Command="{x:Static local:NumericUpDown.DecreaseCommand}"
                        Grid.Column="1" Grid.Row="1">Down</RepeatButton>

        </Grid>

      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

Para obter o exemplo completo, consulte o controle personalizado NumericUpDown com tema e o exemplo de suporte de automação da interface do usuário.For the complete sample, see NumericUpDown Custom Control with Theme and UI Automation Support Sample.

O seguinte retorna o segundo ItemsControl encontrado no caminho para cima, começando no elemento de destino da associação.The following returns the second ItemsControl encountered on the upward path starting at the target element of the binding.

Binding myBinding = new Binding();
// Returns the second ItemsControl encountered on the upward path
// starting at the target element of the binding
myBinding.RelativeSource = new RelativeSource(
    RelativeSourceMode.FindAncestor, typeof(ItemsControl), 2);
Dim myBinding As New Binding()
' Returns the second ItemsControl encountered on the upward path
' starting at the target element of the binding
myBinding.RelativeSource = New RelativeSource(RelativeSourceMode.FindAncestor, GetType(ItemsControl), 2)

Comentários

Uma das maneiras de especificar uma fonte de associação é usar a Binding.RelativeSource propriedade.One of the ways to specify a binding source is to use the Binding.RelativeSource property. Esse é o tipo de propriedade dessa propriedade.This is the property type of that property. RelativeSourceé simultaneamente uma implementação de extensão de marcação e um objeto de dados.RelativeSource is simultaneously a markup extension implementation and a data object. Quando a extensão retorna a si mesma ProvideValue(consulte), as informações relevantes estão contidas nos dados.When the extension returns itself (see ProvideValue), the relevant information is contained in the data. A principal finalidade da extensão de marcação é permitir uma sintaxe de construtor de argumento variável no formato de atributo, de modo FindAncestor que o modo possa ser definido em linha com os dois argumentos extras para o tipo e nível ancestral que os outros modos não exigem.The main purpose of the markup extension is to allow a variable-argument constructor syntax in attribute form, so that the FindAncestor mode can be defined inline with the two extra arguments for ancestor type and level that the other modes do not require.

Para XAMLXAML obter informações, consulte relativestate MarkupExtension.For XAMLXAML information, see RelativeSource MarkupExtension.

Construtores

RelativeSource() RelativeSource() RelativeSource() RelativeSource()

Inicializa uma nova instância da classe RelativeSource.Initializes a new instance of the RelativeSource class.

RelativeSource(RelativeSourceMode) RelativeSource(RelativeSourceMode) RelativeSource(RelativeSourceMode) RelativeSource(RelativeSourceMode)

Inicializa uma nova instância da classe RelativeSource com um modo inicial.Initializes a new instance of the RelativeSource class with an initial mode.

RelativeSource(RelativeSourceMode, Type, Int32) RelativeSource(RelativeSourceMode, Type, Int32) RelativeSource(RelativeSourceMode, Type, Int32) RelativeSource(RelativeSourceMode, Type, Int32)

Inicializa uma nova instância da classe RelativeSource com um modo inicial e qualificadores adicionais de verificação de árvore para localizar a origem relativa desejada.Initializes a new instance of the RelativeSource class with an initial mode and additional tree-walking qualifiers for finding the desired relative source.

Propriedades

AncestorLevel AncestorLevel AncestorLevel AncestorLevel

Obtém ou define o nível de ancestral a ser procurado, em modo FindAncestor.Gets or sets the level of ancestor to look for, in FindAncestor mode. Use 1 para indicar o mais próximo ao elemento de destino da associação.Use 1 to indicate the one nearest to the binding target element.

AncestorType AncestorType AncestorType AncestorType

Obtém ou define o tipo de ancestral a ser procurado.Gets or sets the type of ancestor to look for.

Mode Mode Mode Mode

Obtém ou define um valor de RelativeSourceMode que descreve o local da origem da associação com relação à posição do destino da associação.Gets or sets a RelativeSourceMode value that describes the location of the binding source relative to the position of the binding target.

PreviousData PreviousData PreviousData PreviousData

Obtém um valor estático usado para retornar uma RelativeSource construída para o modo PreviousData.Gets a static value that is used to return a RelativeSource constructed for the PreviousData mode.

Self Self Self Self

Obtém um valor estático usado para retornar uma RelativeSource construída para o modo Self.Gets a static value that is used to return a RelativeSource constructed for the Self mode.

TemplatedParent TemplatedParent TemplatedParent TemplatedParent

Obtém um valor estático usado para retornar uma RelativeSource construída para o modo TemplatedParent.Gets a static value that is used to return a RelativeSource constructed for the TemplatedParent mode.

Métodos

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Serve como a função de hash padrão.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Inherited from Object)
ProvideValue(IServiceProvider) ProvideValue(IServiceProvider) ProvideValue(IServiceProvider) ProvideValue(IServiceProvider)

Retorna um objeto que deve ser definido como o valor na propriedade do objeto de destino para esta extensão de marcação.Returns an object that should be set as the value on the target object's property for this markup extension. Para RelativeSource, este é outro RelativeSource, usando a origem apropriada para o modo especificado.For RelativeSource, this is another RelativeSource, using the appropriate source for the specified mode.

ShouldSerializeAncestorLevel() ShouldSerializeAncestorLevel() ShouldSerializeAncestorLevel() ShouldSerializeAncestorLevel()

Indica se a propriedade AncestorLevel deve ser persistente.Indicates whether the AncestorLevel property should be persisted.

ShouldSerializeAncestorType() ShouldSerializeAncestorType() ShouldSerializeAncestorType() ShouldSerializeAncestorType()

Indica se a propriedade AncestorType deve ser persistente.Indicates whether the AncestorType property should be persisted.

ToString() ToString() ToString() ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Inherited from Object)

Implantações explícitas de interface

ISupportInitialize.BeginInit() ISupportInitialize.BeginInit() ISupportInitialize.BeginInit() ISupportInitialize.BeginInit()

Este membro dá suporte à infraestrutura Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) e não se destina a ser usado diretamente do código.This member supports the Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code.

ISupportInitialize.EndInit() ISupportInitialize.EndInit() ISupportInitialize.EndInit() ISupportInitialize.EndInit()

Este membro dá suporte à infraestrutura Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) e não se destina a ser usado diretamente do código.This member supports the Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code.

Aplica-se a

Veja também