【发布时间】:2011-08-22 15:34:13
【问题描述】:
如何从 C# 代码生成此 xaml:
目前:
<TextBlock>
Click <Hyperlink Command="{Binding MyCommand}">here</Hyperlink> to continue.
</TextBlock>
我想要什么:
<TextBlock Text="{Binding MyTextWithHyperlink, Mode=OneWay}" />
public string MyTextWithHyperlink
{
get
{
return ""; //???
}
}
是的,我有充分的理由这样做,而不是在 xaml 中。 :)
更新:这就是我要返回字符串的原因,因为 IDataError 返回一个字符串...
String IDataError.this[String columnName]
{
get
{
if (columnName == "MyProperty")
{
if (something1) return ""; //????
if (something2) return "some other string";
}
return null;
}
}
【问题讨论】:
-
我敢打赌,解决导致您认为您有正当理由在代码中生成这些对象的问题比在代码中生成这些对象更容易。
-
我更新了我的问题以显示为什么我需要创建对象并返回字符串。
-
对。您需要的是包含错误消息文本的超链接。因此,创建一个包含消息的属性,并将超链接的文本绑定到该属性。但是等等,你说
Hyperlink没有可绑定的Text属性。正确:见stackoverflow.com/questions/140996/…。 -
@Robert:到了一半……整个文本没有超链接,只有一部分……这肯定需要一些额外的逻辑。
标签: wpf string data-binding text hyperlink