【问题标题】:Binding Run inside Textblock results in exception in WPF在 Textblock 中绑定 Run 会导致 WPF 出现异常
【发布时间】:2015-05-30 21:03:15
【问题描述】:

我正在尝试在TextBlock 中绑定两个<Run>s,如下面的sn-p 所示。但我收到了XamlParseException

基本上我正在尝试实现这种格式:

代码编号: LongDescription

如果下面的代码注定要失败,我还有什么其他选择?

<TextBlock>
    <Run FontWeight="Bold" Text="{Binding CodeNum}"/>
    <Run FontWeight="Bold" Text=": "/>
    <Run Text="{Binding LongDescription}"/>
</TextBlock>

【问题讨论】:

    标签: c# wpf xaml textblock


    【解决方案1】:

    我猜LongDescriptionCodeNumis 是只读属性(没有公共设置器)。您需要将绑定更改为您在 Run 中使用的所有只读属性的一种方式

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

    【讨论】:

    • 我相信,默认情况下,Run 元素的绑定模式只有一种方式。如果我错了,请纠正我。
    • 感谢 dkozl,实际上将模式更改为 OneWay 解决了问题。
    • @SriramSakthivel no Run 默认绑定Text 两种方式,如果属性没有公共设置器,则会导致异常。
    • @Sriram Sakthivel 幸运的是,我的应用程序刚刚进入中断模式,没有告诉我有关异常来源的任何信息。我很高兴这是我最近更改的唯一内容,所以我知道将我的运行绑定到表达式主体属性是错误的。寻找原因已经够痛苦的了。我现在只想知道,为什么会这样?我可以在没有设置器的情况下很好地绑定到 TextBlock 的 Text 属性,为什么 Run 表现不同?
    • 谁能解释(或指向相关文档)为什么Run 有默认Mode=TwoWay 的原因?我的意思是,用户是否能够以任何方式更改我绑定到 Run 的文本?在我看来,Run 只是一种在单个TextBlock 中绑定只读文本的不同 sn-ps 的方法。我错了吗?
    猜你喜欢
    • 1970-01-01
    • 2011-01-13
    • 2016-01-06
    • 1970-01-01
    • 2016-12-18
    • 1970-01-01
    • 2013-04-04
    • 2013-01-15
    • 1970-01-01
    相关资源
    最近更新 更多