整理WPF中Binding的写法:
XMAL中控件绑定的一定要是依赖属性
提示:顺便提一下TextBlock如何设置绑定命令,因为TextBlock没有Command这个依赖属性,所以要采用其他途径
学习内容1:
提示:下面是一些常用的绑定写法
<!--绑定到DataContext-->
<Button Content="{Binding 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中指定属性-->
<Button Content="{Binding ElementName=btn,Path=Content}"/>
<!--绑定到相对位置中的自身模式-->
<Button Content="{Binding RelativeSource={RelativeSource Mode=Self},Path=Tag}" Tag="MyTag"/>
<!--绑定到相对位置中的父级别查找模式-->
<Button Content="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Window},Path=Content}"/>
<!--绑定到相对位置中的父级别查找模式 绑定到指定类型-->
<Button Content="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Window},Path=Content}"/>
<!--绑定到相对位置中的父级别查找模式 绑定到指定层级-->
<Button Content="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorLevel=2},Path=Content}"/>
<!--绑定到相对位置中的父级别查找模式 绑定到模板内容-->
<Button Content="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=Content}"/>
学习内容2:
提示:下面是TextBlock绑定命令的一种写法
<TextBlock HorizontalAlignment="Right" Text="" Style="{StaticResource CloseBtnStyle}">
<TextBlock.InputBindings>
<MouseBinding Command="{Binding CloseCommand}"
CommandParameter="{Binding Path=.,RelativeSource={RelativeSource AncestorType=Window}}"
MouseAction="LeftClick">
</MouseBinding>
</TextBlock.InputBindings>
</TextBlock>
其中{Bingding Path=.,xxxx}表示绑定到自身,等价于{Bingding ., xxxx}