WPF几种高级绑定

(1)Binding  + RelativeSource + AncestorType 模式  , 根据关联源所指定的类型,可动态绑定指定类型的Path属性(Path可以省略)(PS:动态指父级在运行时才可以获取到的属性),例子如下:

                                     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模式(模板绑定),通常在控件模板中——>实现“静态”绑定父级的对应属性(PS:静态指父级在非运行时就具有的属性),例子如下:

FontSize="{TemplateBinding FontSize}"

 

(3)Binding  + RelativeSource + TemplatedParent模式 ,由于关联源指向 “模板的父级”,所以可动态绑定父级的Path属性(Path可以省略),例子如下:

Source="{Binding NormalImage,RelativeSource={RelativeSource TemplatedParent}}"/>

转载于:https://www.cnblogs.com/changbaishan/p/9172334.html

你可能感兴趣的:(WPF几种高级绑定)