我在 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/