1

假设我有以下课程:

Class C {
    public string A {get; set;}
    public string B {get; set;}
}

XAML 文件的一部分由 2 个文本块组成

<TextBlock Text="{Binding C.A, TargetNullValue=Not available}"/>
<TextBlock Text="{Binding C.B}"/>

现在我遇到了属性 A 可以为空的问题,因此我使用 TargetNullValue 发送没有值的消息,但我也希望如果 A 为空 -> B 应该显示为空字符串,否则 B 只是 B。所有必须无需更改对象即可工作,因为当 B 的值不依赖于 A 时,B 将在其他地方使用。

简而言之:最好是第二个文本块可以是属性 A 的侦听器(在检查 TargetNullValue 时定位 A),但如果它要显示某些内容(使用 Path 属性),它会切换到 B。

我不确定在 XAML 中是否可行,或者我需要做一些绕行,有什么建议吗?

4

1 回答 1

0

以下是您的限制条件的回顾:

  • 你不能改变班级C
  • 如果C.A为null,则在第二个中显示一个空字符串TextBox
  • 如果C.A!= null,则在第二个中显示 CBTextBox
  • 更改时C.A,第二个TextBox必须相应更新

这是我认为你应该做的:

  • 将第二个绑定TextBoxC.A以便在该属性更改时收到通知
  • 使用 aConverter显示空字符串或C.B
于 2013-01-04T11:16:04.337 回答