silverlight - 在文本 block 中突出显示搜索词

标签 silverlight xaml mvvm textblock

我在 silverlight 应用程序上有一个搜索文本框,用户在其中输入搜索词,结果显示在文本 block 中,要求搜索词匹配应在文本 block 中突出显示。

我已经看到了一些在文本 block 中突出显示搜索词的示例,但没有使用 mvvm 模式。我在 View 模型中绑定(bind)文本 block 的文本属性,我尝试访问内联集合以指定不同的标签,但后来知道内联集合不可绑定(bind)。

<TextBlock Text="{Binding Description}"/>

此描述正在 ViewModel 中设置

最佳答案

正如 Will 提到的,这是 View 功能,因此将其放在 Views 代码后面是可以接受的。

在你的 .xaml.cs

private void ButtonSearchRequest_Click(object sender, RoutedEventArgs e)
{
    Search(TextBoxToSearch, TextBoxSearchTerm.Text);
}

private void Search(TextBox tb, string strSearchTerm)
{
    strSearchTerm = strSearchTerm.Trim().ToLower();
    int iNextMatch = tb.Text.ToLower().IndexOf(strSearchTerm);

    if (iNextMatch >= 0)
    {
        tb.Focus();
        tb.CaretIndex = iNextMatch;
        tb.Select(iNextMatch, strSearchTerm.Length);
        tb.ScrollToLine(tb.GetLineIndexFromCharacterIndex(iNextMatch));
    }
 }

关于silverlight - 在文本 block 中突出显示搜索词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8227207/

相关文章:

c# - 将异步PointCollection更改传播到UI

asp.net - 在 Web 项目中托管时调试 Silverlight?

wpf - MVVM Linq2Sql 和 DataContext

c# - Prism 4 - 本地范围的 RegionManager

c# - 只有当AutoGenerateColumns = true时,Datagrid才能工作

c# - 如何使用 bool 值作为触发器

c# - 如何从 DataTemplate 获取绑定(bind)名称

silverlight - Silverlight 4 中缺少 System.Windows.Interactivity - mvvm light 教程

c# - tabcontroller 中的两个选定选项卡

wpf - 在DataTemplate中访问我的Window的DataContext