Binding.Source Binding.Source Binding.Source Binding.Source Property

定義

バインド ソースとして使用されるオブジェクトを取得または設定します。Gets or sets the object to use as the binding source.

public:
 property System::Object ^ Source { System::Object ^ get(); void set(System::Object ^ value); };
public object Source { get; set; }
member this.Source : obj with get, set
Public Property Source As Object

プロパティ値

バインド ソースとして使用されるオブジェクト。The object to use as the binding source.

次の例では、Personという名前の文字列プロパティを持つオブジェクトPersonNameで定義されている、SDKSample最初の行を強調表示されているように、名前空間。The following example uses a Person object with a string property named PersonName that is defined in the SDKSample namespace, as the first highlighted line shows. 強調表示された行を含む、<src>要素がインスタンス化、PersonオブジェクトをPersonNameプロパティ値のJoeします。In the highlighted line that contains the <src> element, it instantiates the Person object with a PersonName property value of Joe. これを行う、Resourcesセクションし、割り当てられている、x:Keyします。This is done in the Resources section and assigned an x:Key.

<Window
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:src="clr-namespace:SDKSample"
  SizeToContent="WidthAndHeight"
  Title="Simple Data Binding Sample">

  <Window.Resources>
    <src:Person x:Key="myDataSource" PersonName="Joe"/>
    <Style TargetType="{x:Type Label}">
      <Setter Property="DockPanel.Dock" Value="Top"/>
      <Setter Property="FontSize" Value="12"/>
    </Style>
    <Style TargetType="{x:Type TextBox}">
      <Setter Property="Width" Value="100"/>
      <Setter Property="Height" Value="25"/>
      <Setter Property="DockPanel.Dock" Value="Top"/>
    </Style>
    <Style TargetType="{x:Type TextBlock}">
      <Setter Property="Width" Value="100"/>
      <Setter Property="Height" Value="25"/>
      <Setter Property="DockPanel.Dock" Value="Top"/>
      <Setter Property="Padding" Value="3"/>
    </Style>
  </Window.Resources>
  <Border Margin="5" BorderBrush="Aqua" BorderThickness="1" Padding="8" CornerRadius="3">
    <DockPanel Width="200" Height="100" Margin="35">
      <Label>Enter a Name:</Label>
      <TextBox>
        <TextBox.Text>
          <Binding Source="{StaticResource myDataSource}" Path="PersonName"
                   UpdateSourceTrigger="PropertyChanged"/>
        </TextBox.Text>
      </TextBox>
      
      <Label>The name you entered:</Label>
      <TextBlock Text="{Binding Source={StaticResource myDataSource}, Path=PersonName}"/>
    </DockPanel>
  </Border>
</Window>

強調表示された行を含む、<TextBlock>要素にバインドする方法を示しています、PersonNameプロパティ。The highlighted line that contains the <TextBlock> elements shows how to bind to the PersonName property. 結果として、 TextBlock "Joe"の値を持つコントロールが表示されます。As a result, the TextBlock control appears with the value "Joe".

次の例では、Sourceの値、Bindingオブジェクトに設定されます、staticプロパティApplication.Current:In the following example, the Source values of the Binding objects are set to the static property Application.Current:

<ComboBox.IsEnabled>
    <MultiBinding Converter="{StaticResource specialFeaturesConverter}">
        <Binding Path="CurrentUser.Rating" 
          Source="{x:Static Application.Current}"/>
        <Binding Path="CurrentUser.MemberSince" 
    Source="{x:Static Application.Current}"/>
    </MultiBinding>
</ComboBox.IsEnabled>

完全な例では、次を参照してください。データ バインディング デモします。For the full example, see Data Binding Demo.

注釈

既定では、バインドがで指定されたデータ コンテキストを継承、DataContextいずれかが設定されている場合は、プロパティ。By default, bindings inherit the data context specified by the DataContext property, if one has been set. ただし、Sourceプロパティは、のソースを明示的に設定する方法の 1 つ、Bindingし、継承されたデータ コンテキストをオーバーライドします。However, the Source property is one of the ways you can explicitly set the source of a Binding and override the inherited data context. スコープを確立するの機能を必要としない場合、同じデータ コンテキストを継承するいくつかのプロパティを使用できます、Sourceプロパティの代わりに、DataContextプロパティ。If you do not need the functionality of establishing a scope in which several properties inherit the same data context, you can use the Source property instead of the DataContext property.

Binding.ElementNameBinding.RelativeSourceプロパティも有効にするバインディングのソースを設定する明示的にします。The Binding.ElementName and Binding.RelativeSource properties also enable you to set the source of the binding explicitly. ただし、3 つのプロパティの 1 つだけElementNameSource、およびRelativeSource、する必要がありますセットごとに、バインド、または競合が発生することができます。However, only one of the three properties, ElementName, Source, and RelativeSource, should be set for each binding, or a conflict can occur. このプロパティは、バインディング ソースの競合がある場合に例外をスローします。This property throws an exception if there is a binding source conflict.

このプロパティをオフに設定DependencyProperty.UnsetValueします。To clear this property, set it to DependencyProperty.UnsetValue.

XAML 属性の使用方法XAML Attribute Usage

<object Source="object"/>  

XAML 値XAML Values

objectobject
既存のオブジェクト。An existing object. 既存のオブジェクトを参照するには、使用、 StaticResource マークアップ拡張機能To refer to an existing object, use the StaticResource Markup Extension

適用対象