首页 > 其他分享 >WPF Binding

WPF Binding

时间:2023-09-30 16:45:10浏览次数:37  
标签:RelativeSource Text 绑定 Binding Source Path WPF

$\color{#FF0000}{Binding}$

Mode(4种模式)

1。使用twoway方式绑定以后,如果手动更改textbox的值,此时如果通过按钮事件来查看滚动条的value值,就会发现和textbox是一致

2。oneway方式,就是滚动条改变的时候会改变文本框的显示值,但是文本框更改的时候不会更改滚动条的值

3。onetime方法,会发现文本框的值会是滚动条的初始值。而且不会变化

4。onewaytosource。就是文本框更改的时候会改变源的属性。这个时候其实数据源和数据目标已经颠倒过来了

5。default方式,这个方式完全就是根据控件的属性来设置的,比如若是可编辑的(如TextBox.Text属性),Default就采用双向模式;若是只读的(TextBlock.Text)则采用单向模式。

Source

Text="{Binding Source={staticResource str}}"
Text="{Binding Source={staticResource myobj},Path=Message}"
Text="{Binding Source={x:Static local:MyObj.StaticString}}"
Text="{Binding Source={x:Static HorizontalAlignment.Stretch}}"

ElementName

Text="{Binding ElementName=txt,Path=Text}"
说明:
只能绑定可视化树内得对象,无法在toolTip等上实现绑定,可使用以下方式解决
Text="{Binding Source={x:Reference txt},Path=Text}",Reference指在xaml文档内搜索控件实现绑定
'X:Reference 局限性:无法绑定自己的父级

RelativeSource
绑定父级

Text="{Binding RelaticeSource={RelativeSouce Mode=FindAncestor,AncestorType=Window},Path=Name}"
FindAncestor指寻找父级.
Text="{Binding RelaticeSource={RelativeSouce Mode=FindAncestor,AncestorType=Window,AncestorLevel=3},Path=Name}"
AncestorLevel绑定得层级(指父级有嵌套得情况),默认为1

绑定自己

Text="{Binding RelativeSource={RelativeSource Mode=Self},Path=ActualWidth}"

模板内绑定

Text="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=ActualWidth}"
等价于
Text="{TemplateBinding ActualWidth}"

其他技巧(拓展)
StringFormat

Text="{Binding ElementName=window,Path=top,StringFormat='Top:{0:F3}'}"

MultiBinding
TargetNullValue,FallbackValue,UpdateSourceTrigger
BindingProxy(万能)

<local:BindingProxy x:key="Root" Data="{Binding RelativeSource={RelativeSource AncestorType=Window}}"/>
了解DiscreteObjectKeyFrame

标签:RelativeSource,Text,绑定,Binding,Source,Path,WPF
From: https://www.cnblogs.com/ckblogs/p/17737992.html

相关文章

  • WPF中的触发器——Trigger
    trigger主要运用的场景在Style、ControlTemplate、DataTemplate三个地方。在这些地方可以使用trigger,具体视情况而定。1.属性触发器(PropertyTrigger)一般用于自身DependencyProperty的值发生改变时触发2.数据触发器(DataTrigger)Trigger都是专对于控件自身的依赖属性(depen......
  • wpf ListViewItem 怎么设置圆角并有阴影效果,请给出 详细的 xaml代码
    以下是一段详细的XAML代码示例,展示了如何为WPF的ListViewItem设置圆角和阴影效果:<ListView><ListView.ItemContainerStyle><StyleTargetType="ListViewItem"><SetterProperty="Template"><Sette......
  • 记一次 .NET 某金融企业 WPF 程序卡死分析
    ##一:背景###1.讲故事前段时间遇到了一个难度比较高的dump,经过几个小时的探索,终于给找出来了,在这里做一下整理,希望对大家有所帮助,对自己也是一个总结,好了,老规矩,上WinDBG说话。##二:WinDbg分析###1.为什么会卡死既然程序卡死,那肯定是被冻住了,所以看下主线程此时在做什么。......
  • 界面组件DevExpress WPF v23.2新功能预览 - 更轻量级的主题
    本文主要描述了DevExpressWPF即将在几个月之后发布的v23.2中包含的新功能,持续关注我们获取更多最新资讯哦~P.S:DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程......
  • org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
    问题描述在我写好了后端代码之后,就一直启动不成功,爆出来这个错误,一直说什么,哪里哪里配置不行,哪里哪里没有注解,哪里哪里不一致等,我看了半天~问题解决原来是这里:之前我没有加RestControlller的注解加上之后:数据显示啦!......
  • WPF 将字符串按固定位数间隔展示
    使用转换器,将字符串值做处理:usingSystem;usingSystem.Collections.Generic;usingSystem.Globalization;usingSystem.Linq;usingSystem.Text;usingSystem.Windows;usingSystem.Windows.Data;namespaceControls.Converters{publicclassStringSpaceConvert......
  • WPF中以MVVM方式,实现RTSP视频播放
    前言视频播放在上位机开发中经常会遇到,基本上是两种常见的解决方案1.采用厂家提供的sdk和前端控件进行展示,常见的海康/大华都提供了相关sdk及文档2.开启相机onvif协议,捅过rtsp视频流进行播放,前端可以采用web方式,或者wpf中的视频控件进行展示。项目需求,决定了最终采用开启相机on......
  • [WPF] 随笔1:MVVM在ViewModel更新Image控件的BitmapImage值时报:必须在与 DependencyObj
    MVVM在ViewModel更新Image控件的BitmapImage值时报:必须在与DependencyObject相同的线程上创建DependencySource原因:必须在UI线程创建BitmapImage=>链接解决方案:使用MemoryStream加载图片,并在UI线程转换成BitmapImage=>链接接下来是我的写法Tip:我用的是MVVMLightViewM......
  • Exception in thread "main" org.apache.ibatis.binding.BindingException: Invalid b
    我报错的原因很简单mapper的interface和xml文件名字不相同导致我的问题以及对应的解决1.查看mapper的接口和xml文件名字是否相同 更多解决办法:【报错解决】org.apache.ibatis.binding.BindingException:Invalidboundstatement(notfound)_猩猩不摆烂的博客-CSDN博客......
  • 搭建Wpf框架(17) ——大文件上传与下载
    先上效果图:大文件上传1.客户端需要按照块拆成一块一块,先计算大小,然后计算块的个数,然后按块逐个上传,代码如下:public async Task<UploadResult> UploadFileChunck(string path, Action<double> progressAction)        {            try      ......