屬性binding方式
綁定到DataContext
<!--綁定到DataContext-->
<Button Content="{Binding DataTime}"/>
<Button Content="{Binding RelativeSource={RelativeSource self},Path=DataTime}"/>
<!--綁定到DataContext,並設置綁定模式-->
<Button x:Name="btn" Content="{Binding DataTime,Mode=OneTime}"/>
<!--綁定到DataContext,並設置更新模式-->
<Button Content="{Binding DataTime,UpdateSourceTrigger=PropertyChanged}"/>
<!--綁定到DataContext,並設置轉換模式-->
<Button Content="{Binding DataTime,Converter={StaticResource ConvertResource},ConverterParameter=btn1}"/>
綁定到Element
<!--綁定到Element中指定屬性-->
<Button Content="{Binding ElementName=btn,Path=Content}"/>
<!--綁定到相對位置中的自身模式-->
<Button Content="{Binding Tag, RelativeSource={RelativeSource Self}}" Tag="MyTag"/>
綁定到父級別
<!--綁定到相對位置中的父級別查找模式 綁定到指定類型-->
<Button Content="{Binding Content, RelativeSource={RelativeSource AncestorType=UserControl}}"/>
<!--綁定到相對位置中的父級別查找模式 綁定到指定層級-->
<Button Content="{Binding Content, RelativeSource={RelativeSource Mode=FindAncestor,AncestorLevel=2}}"/>
<!--綁定到相對位置中的父級別查找模式 綁定到模板內容 Template使用者元素的屬性上-->
<Button Content="{Binding Content, RelativeSource={RelativeSource TemplatedParent}}"/>
<!--GroupBox.Heade自定義顯示-->
<GroupBox>
<GroupBox.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding Header, RelativeSource={RelativeSource AncestorType={x:Type GroupBox},AncestorLevel=1}}" FontSize="12"/>
</DataTemplate>
</GroupBox.HeaderTemplate>
<Grid x:Name="grdContent">
</Grid>
</GroupBox>
TemplateBinding與Binding
TemplateBinding是Binding的一個輕量級版本,最主要的用途是內置在模板中綁定模板化元素的屬性。
Background="{TemplateBinding Foreground}"
Background="{Binding Foreground, RelativeSource={RelativeSource TemplatedParent}}"
TemplateBinding的數據綁定是單向的,從數據源到目標。
TemplateBinding不能對數據對象進行自動轉換,數據源和目標的數據類型不同時候,需要自己寫轉換器。