WPF MVVM自定义ListView单元格以插入超链接并更改文本颜色

WPF MVVM自定义ListView单元格以插入超链接并更改文本颜色,wpf,xaml,mvvm,Wpf,Xaml,Mvvm,我在ListView中有一个GridView单元格,它被定义为TextBlock并绑定到我的ViewModel上的字符串。我想能够改变部分文字成超链接和部分成不同的颜色编程 以下是GridView单元格的XAML: <GridViewColumn.CellTemplate> <DataTemplate> <Border BorderThickness="2" BorderBrush="#dfdfdf" HorizontalAlignment=

我在ListView中有一个GridView单元格,它被定义为TextBlock并绑定到我的ViewModel上的字符串。我想能够改变部分文字成超链接和部分成不同的颜色编程

以下是GridView单元格的XAML:

<GridViewColumn.CellTemplate>
    <DataTemplate>
        <Border BorderThickness="2" BorderBrush="#dfdfdf" HorizontalAlignment="Stretch">
            <TextBlock Text="{Binding Data}" Margin="3"/>    
        </Border>
    </DataTemplate>
</GridViewColumn.CellTemplate>

下面是目前的情况:

绑定的文本示例如下:

<color:#ff0000>Test item</color>
Test item 2
<link:http://www.google.com>Test hyperlink</link>
测试项目
测试项目2
测试超链接
我对正则表达式解析绑定文本并提取所需信息没有任何问题,但是如何将TextBlock更改为不同的颜色并添加超链接呢


提前感谢

您可以将多个元素放入一个文本块和样式中,然后选择您喜欢的样式

下面是一个具有工作超链接的示例,该超链接甚至支持MVVM:)


注:
Interaction.Triggers
来自
System.Windows.Interactivity
和MVVMLight的
EventToCommand

与Blachshma的答案类似,但使用了一个包含
Run
对象的超链接:

<TextBlock>
  <Run Text="{Binding Data}" />
  <Run Text="Some more data" Background="Red" />
  <Hyperlink Command="{Binding Path=Command}">
    <TextBlock Text="{Binding Path=Text}"/>
  </Hyperlink>
</TextBlock>

显然,我有一个
命令
文本
属性要绑定到超链接。将看起来完全相同,但也将响应命令的
CanExecute
谓词(超链接变为灰色)

<TextBlock>
  <Run Text="{Binding Data}" />
  <Run Text="Some more data" Background="Red" />
  <Hyperlink Command="{Binding Path=Command}">
    <TextBlock Text="{Binding Path=Text}"/>
  </Hyperlink>
</TextBlock>