(1)Binding? + RelativeSource + AncestorType 模式? , 根据关联源所指定的类型,可动态绑定指定类型的Path属性(Path可以省略),例子如下:
<TextBox x:Name="Date_TextBox" FontFamily="{TemplateBinding FontFamily}" FontSize="{TemplateBinding FontSize}" FontStretch="{TemplateBinding FontStretch}" ?
???????????????????????????????????? VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
???????????????????????????????????? IsReadOnly="{Binding IsDateReadOnly,RelativeSource={RelativeSource AncestorType=local:FreeDatePicker}}"? BorderThickness="0"? MaxLength="10"
???????????????????????????????????? Text="{Binding Path=SelectedDate,Mode=TwoWay,Converter={StaticResource str_mutual_dt},? ?
???????????????????????????????????? StringFormat=‘yyyy-MM-dd‘,RelativeSource={RelativeSource AncestorType=DatePicker}}"
???????????????????????????????????? KeyDown="Date_TextBox_KeyDown" PreviewMouseDown="Date_TextBox_PreviewMouseDown"
???????????????????????????????????? GotKeyboardFocus="Date_TextBox_GotKeyboardFocus" MouseDown="Date_TextBox_MouseDown" GotFocus="Date_TextBox_GotFocus"/>
?
(2)TemplateBinding模式(模板绑定),通常在控件模板中——>实现绑定父级的对应属性,例子如下:
FontSize="{TemplateBinding FontSize}"
?
(3)Binding? + RelativeSource + TemplatedParent模式 ,由于关联源指向 “模板的父级”,所以可动态绑定父级的Path属性(Path可以省略),例子如下:
Source="{Binding NormalImage,RelativeSource={RelativeSource TemplatedParent}}"/>