【发布时间】:2013-11-11 13:01:06
【问题描述】:
我在 Silverlight(Windows 手机)应用程序中使用 MVVM 模型。我的视图中有一个名为“状态”的文本块。此文本块将显示交易状态。如果用户未注册,则显示消息“您没有在我们这里注册。请在这里注册”。“这里”这个词应该是一个超链接。如果用户在我们这里注册,那么我们说“上次登录时间是 xx-xx-xxxx”...
我的 View.xaml 有:
<TextBlock Name="lblStatusValue"
Text="{Binding Status}"
TextWrapping="Wrap" FontSize="23"
/>
ViewModel.cs 有一个为 baove 控件的绑定定义的属性。
private string _Status;
public string Status
{
get { return _Status; }
set
{
if (value != _Status)
{
_Status = value;
RaisePropertyChanged("Status");
}
}
}
是否可以选择一个特定的单词并将其作为我们想要显示的任何消息中的超链接?由于我使用的是 MVVM 模型,我不知道如何在运行时添加对象(我在运行控制中尝试了这个超链接,但在 MVVM 中我们如何实现这一点?)
我是否必须在 View.cs 中添加如下代码,而不能从 ViewModel.cs 中添加?
【问题讨论】:
-
这个link 处理类似的线程。这可能对你有帮助。
-
我认为为了避免对您的实施造成最大的破坏(听起来像在同一个
TextBlock中您想要混合文本和一个链接),您可以考虑使用RichTextBox。使用它,您可以定义内联超链接:msdn.microsoft.com/en-us/library/… -
a
TemplateSelector在这里似乎很合适。但是你不能将它与TextBlock一起使用,所以我会考虑切换到ContentControl与TemplateSelector与两个DataTemplates,一个带有超链接,一个没有它... -
查看如何在 xaml 中使用段落。而不是你可以将你的文本分成几部分。
标签: c# wpf silverlight xaml mvvm