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