Binding.Source Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar eller anger objektet som ska användas som bindningskälla.
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
Egenskapsvärde
Objektet som ska användas som bindningskälla.
Exempel
I följande exempel används ett Person objekt med en strängegenskap med namnet PersonName som definieras i SDKSample namnområdet, som den första markerade raden visar. På den markerade raden som innehåller elementet <src> instansierar det Person objektet med egenskapsvärdet PersonNameJoe. Detta görs i avsnittet Resources och tilldelas en 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>
Den markerade raden som innehåller elementen <TextBlock> visar hur du binder till PersonName egenskapen. Därför TextBlock visas kontrollen med värdet "Joe".
I följande exempel anges objektens SourceBinding värden till static egenskapen 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>
Kommentarer
Som standard ärver bindningar den datakontext som anges av DataContext egenskapen, om en har angetts. Egenskapen är dock Source ett av sätten som du uttryckligen kan ange källan för en Binding och åsidosätta den ärvda datakontexten. Om du inte behöver funktionen för att upprätta ett omfång där flera egenskaper ärver samma datakontext kan du använda Source egenskapen i stället för egenskapen DataContext .
Med Binding.ElementName egenskaperna och Binding.RelativeSource kan du också ange källan för bindningen explicit. Men endast en av de tre egenskaperna, ElementName, Sourceoch RelativeSource, ska anges för varje bindning, eller så kan en konflikt uppstå. Den här egenskapen utlöser ett undantag om det finns en konflikt med bindningskällan.
Om du vill rensa den här egenskapen anger du den till DependencyProperty.UnsetValue.
XAML-attributanvändning
<object Source="object"/>
XAML-värden
Objekt Ett befintligt objekt. Om du vill referera till ett befintligt objekt använder du Tillägget StaticResource Markup