在Textblock中绑定运行导致WPF中的异常

Vah*_*hid 8 c# wpf xaml textblock

我正试图将两个<Run>s 绑定在一个内部TextBlock,如下面的代码片段所示.但我得到了一个XamlParseException.

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

CodeNum: LongDescription

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

<TextBlock>
    <Run FontWeight="Bold" Text="{Binding CodeNum}"/>
    <Run FontWeight="Bold" Text=": "/>
    <Run Text="{Binding LongDescription}"/>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)

dko*_*ozl 23

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

<Run Text="{Binding LongDescription, Mode=OneWay}"/>
Run Code Online (Sandbox Code Playgroud)

  • 谢谢dkozl,实际上将模式更改为"OneWay"解决了问题. (5认同)
  • 任何人都可以解释(或指向相关文档)“Run”具有默认“Mode=TwoWay”的原因吗?我的意思是,用户是否能够以任何方式更改我绑定到“Run”的文本?在我看来,“Run”只是在单个“TextBlock”中绑定不同只读文本片段的方法。我错了吗? (3认同)
  • @SriramSakthivel 默认情况下没有`Run` 绑定`Text` 两种方式,如果属性没有公共setter,它将导致异常。 (2认同)