Binding.Source 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置要用作绑定源的对象。
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
属性值
要用作绑定源的对象。
示例
下面的示例使用一个 Person
对象,该对象具有在 命名空间中SDKSample
定义的名为 PersonName
的字符串属性,如第一个突出显示的行所示。 在包含 元素的突出显示行中 <src>
,它实例化 Person
属性值为 PersonName
的对象 Joe
。 这在 Resources
部分中完成,并分配了一个 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
属性。 因此, TextBlock 控件将显示值为“Joe”。
在以下示例中 Source ,对象的值 Binding 设置为 static
属性 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>
有关完整示例,请参阅 数据绑定演示。
注解
默认情况下,绑定继承属性 DataContext
指定的数据上下文(如果已设置)。 但是, Source 属性是显式设置 的源并重写继承的数据上下文的方法之 Binding 一。 如果不需要建立范围(在此范围内若干属性继承同一数据上下文)的功能,可以使用 Source 属性,而不是 DataContext
属性。
和 Binding.ElementNameBinding.RelativeSource 属性还可用于显式设置绑定的源。 但是,应为每个绑定设置三个属性 ElementName中的一个,即 、 Source和 RelativeSource,否则可能会发生冲突。 如果存在绑定源冲突,此属性将引发异常。
若要清除此属性,请将其设置为 DependencyProperty.UnsetValue。
XAML 属性用法
<object Source="object"/>
XAML 值
object
一个现有 对象。 若要引用现有对象,请使用 StaticResource 标记扩展