RelativeSource Clase

Definición

Implementa una extensión de marcado que describe la ubicación del origen del enlace con respecto a la posición de destino del enlace.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
Herencia
RelativeSource
Atributos
Implementaciones

Ejemplos

En el ejemplo siguiente se muestra un desencadenador de ToolTip estilo que crea un que informa de un mensaje de error de validación.The following example shows a style trigger that creates a ToolTip that reports a validation error message. Con la RelativeSource propiedad, el valor del establecedor se enlaza con el contenido del error del actual TextBox ( TextBox con el 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 obtener más información sobre este ejemplo, consulte Cómo: Implementar la validacióndel enlace.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>

En el ejemplo siguiente se Style muestra la definición de un control NumericUpDownpersonalizado denominado.The following example shows the Style definition of a custom control called NumericUpDown. La Text Value propiedad TemplatedParent NumericUpDown de se enlaza al del objeto que es, que es el control al que Style se aplica en este 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 obtener el ejemplo completo, vea ejemplo de control personalizado NumericUpDown con el tema y la compatibilidad con la automatizaciónde la interfaz de usuario.For the complete sample, see NumericUpDown Custom Control with Theme and UI Automation Support Sample.

Lo siguiente devuelve el segundo ItemsControl encontrado en la ruta de acceso ascendente que empieza en el elemento de destino del enlace.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)

Comentarios

Una de las formas de especificar un origen de enlace es usar la Binding.RelativeSource propiedad.One of the ways to specify a binding source is to use the Binding.RelativeSource property. Este es el tipo de propiedad de esa propiedad.This is the property type of that property. RelativeSourcees simultáneamente una implementación de extensión de marcado y un objeto de datos.RelativeSource is simultaneously a markup extension implementation and a data object. Cuando la extensión se devuelve a sí ProvideValuemisma (vea), la información pertinente se incluye en los datos.When the extension returns itself (see ProvideValue), the relevant information is contained in the data. El propósito principal de la extensión de marcado es permitir una sintaxis de constructor de argumento de variable en forma de atributo, FindAncestor de modo que el modo se pueda definir alineado con los dos argumentos adicionales para el tipo y el nivel antecesor que no requieran los otros modos.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 obtener más información, consulte la MarkupExtension de RelativeSource.For XAMLXAML information, see RelativeSource MarkupExtension.

Constructores

RelativeSource()

Inicializa una nueva instancia de la clase RelativeSource.Initializes a new instance of the RelativeSource class.

RelativeSource(RelativeSourceMode)

Inicializa una nueva instancia de la clase RelativeSource con un modo inicial.Initializes a new instance of the RelativeSource class with an initial mode.

RelativeSource(RelativeSourceMode, Type, Int32)

Inicializa una nueva instancia de la clase RelativeSource con un modo inicial y tres calificadores de recorrido de árbol para buscar el origen relativo deseado.Initializes a new instance of the RelativeSource class with an initial mode and additional tree-walking qualifiers for finding the desired relative source.

Propiedades

AncestorLevel

Obtiene o establece el nivel del antecesor que se va a buscar, en el modo FindAncestor.Gets or sets the level of ancestor to look for, in FindAncestor mode. Use 1 para indicar el más próximo al elemento de destino de enlace.Use 1 to indicate the one nearest to the binding target element.

AncestorType

Obtiene o establece el tipo de antecesor que se va a buscar.Gets or sets the type of ancestor to look for.

Mode

Obtiene o establece un valor RelativeSourceMode que describe la ubicación del origen de enlace con respecto a la posición del destino de enlace.Gets or sets a RelativeSourceMode value that describes the location of the binding source relative to the position of the binding target.

PreviousData

Obtiene un valor estático que se usa para devolver el objeto RelativeSource construído para el modo PreviousData.Gets a static value that is used to return a RelativeSource constructed for the PreviousData mode.

Self

Obtiene un valor estático que se usa para devolver el objeto RelativeSource construído para el modo Self.Gets a static value that is used to return a RelativeSource constructed for the Self mode.

TemplatedParent

Obtiene un valor estático que se usa para devolver el objeto RelativeSource construído para el modo TemplatedParent.Gets a static value that is used to return a RelativeSource constructed for the TemplatedParent mode.

Métodos

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
ProvideValue(IServiceProvider)

Devuelve un objeto que se debe establecer como el valor en la propiedad del objeto de destino para esta extensión de marcado.Returns an object that should be set as the value on the target object's property for this markup extension. Para RelativeSource, éste es otro objeto RelativeSource, utilizando el origen adecuado del modo especificado.For RelativeSource, this is another RelativeSource, using the appropriate source for the specified mode.

ShouldSerializeAncestorLevel()

Indica si la propiedad AncestorLevel debe persistir.Indicates whether the AncestorLevel property should be persisted.

ShouldSerializeAncestorType()

Indica si la propiedad AncestorType debe persistir.Indicates whether the AncestorType property should be persisted.

ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)

Implementaciones de interfaz explícitas

ISupportInitialize.BeginInit()

Este miembro es compatible con la infraestructura de Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) y no está diseñado para utilizarse directamente desde el 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()

Este miembro es compatible con la infraestructura de Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) y no está diseñado para utilizarse directamente desde el 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.

Se aplica a

Consulte también: