wpf – 为什么Run.Text默认绑定双向?

wpf – 为什么Run.Text默认绑定双向?,第1张

概述在.NET 4.0中, Run.Text是可绑定的。所以我试图绑定它: <Run Text="{Binding DisplayText}"/> 但是当我跑的时候,我收到一个错误:“TwoWay或OneWayToSource绑定无法在只读属性’DisplayText’类型’SomeNamespace.SomeClass’。 我的DisplayText属性确实是只读的,但是RunBlack中的Run- 在.NET 4.0中, Run.Text是可绑定的。所以我试图绑定它:
<Run Text="{Binding displayText}"/>

但是当我跑的时候,我收到一个错误:“TwoWay或OneWayToSource绑定无法在只读属性’displayText’类型’Somenamespace.someClass’。

我的displayText属性确实是只读的,但是RunBlack中的Run-Runs也是不可编辑的。那么为什么我会收到这个错误?我用dotPeek挖掘PresentationFramework,确定:

public static Readonly DependencyProperty TextProperty =    DependencyProperty.Register("Text",typeof (string),typeof (Run),(PropertyMetadata) new FrameworkPropertyMetadata((object) string.Empty,FrameworkPropertyMetadataOptions.BindsTwoWayByDefault,new PropertyChangedCallback(Run.OnTextPropertyChanged),new CoerceValueCallback(Run.CoerceText)));

第四行,简单的一天指定Run.Text默认绑定双向,这没有任何意义,似乎是一个明显的设计错误。

当然,这很容易解决:

<Run Text="{Binding displayText,Mode=OneWay}"/>

但为什么要解决呢?为什么默认情况下运行绑定双向?

解决方法 只是一个猜测在这里:

这可能是因为运行对象也在RichTextBox控件中使用,我可以想象这个控件可能想要默认绑定TwoWay!

总结

以上是内存溢出为你收集整理的wpf – 为什么Run.Text默认绑定双向?全部内容,希望文章能够帮你解决wpf – 为什么Run.Text默认绑定双向?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1111504.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存