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ではstaticBindingオブジェクトの値がプロパティ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. ただし、 Bindingプロパティは、のソースを明示的に設定し、継承されたデータコンテキストをオーバーライドする方法の1つです。 SourceHowever, 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つのプロパティElementName(、 Source RelativeSource、) のいずれか1つだけをバインドごとに設定する必要があります。それ以外の場合は、競合が発生する可能性があります。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

適用対象