Silverlight数据网格,单元格中的样式文本

时间:2010-02-25 09:38:22

标签: silverlight silverlight-3.0

我想要做什么 - 我有一个包含一些数据的网格,很多都是文本,我想要的是能够在所有文本中高亮某个字符串....

我有......测试一词 单元格中的文字是“test 123 testing 123”

我希望单词test显示为黄色,粗体(或我需要的任何其他样式)。 我通过使用datarowbound事件使用asp.net网格完成了这个操作,并将字符串“test”替换为一些为字符串提供所需样式的html。

我如何在Silverlight单元格中进行此操作?

也许值得注意的是,行在运行时以编程方式添加到网格中......

tcol = new DataGridTextColumn();
tcol.Binding = new System.Windows.Data.Binding("class_property");
tcol.Header = "Header";
tcol.IsReadOnly = true;
dgResults.Columns.Add(tcol);

感谢期待...... 史蒂夫

2 个答案:

答案 0 :(得分:1)

从纯Silverlight角度来看,仅设置文本行部分(即文本块中的文本)的样式的方法是使用Run元素并将多个Run元素添加到文本块。

<强> CODE

Run text = new Run();
                Run dates = new Run();
                Run comments = new Run();

                text.Text = y.User;
                dates.Text = " (" + y.TimeStamp.ToShortTimeString() + ")";
                comments.Text = ":"+y.Comment;

                dates.Foreground = new SolidColorBrush(Colors.Blue);

                rpconversation.Inlines.Add(text);
                rpconversation.Inlines.Add(dates);
                rpconversation.Inlines.Add(comments);

将提供用户和评论具有标准黑色文本的文本,日期将具有蓝色文本。您可以在MSDN网站上了解更多相关信息。

但是,this论坛讨论了如何通过javascripting更改文本元素。也许读完它。

答案 1 :(得分:0)

有一个LoadingRow事件处理程序,它是DataGrid的一部分。在这种情况下,您可以像使用ASP .Net一样。