如何覆盖CSWPFAutoCompleteTextBox中的文本框内容

时间:2016-08-11 06:24:04

标签: wpf-controls

我正在使用此MSDN link中的自动填充文本框。

问题: CSWPFAutoCompleteTextBox具有属性" AutoSuggestionList"我把它绑定到可观察的string集合。每个string都由id + description组成。当用户从下拉列表中选择项目时,如何覆盖texbox内容?我想操纵文本框内容。

这是一个扩展wpf组合框以使其可搜索的文本框。 当用户在文本框中键入字符串时,它会将匹配的字符串显示为下拉列表,用户选择一个项目,该项目将显示在文本框中。 问题是如何覆盖此控件的文本框内容。

1 个答案:

答案 0 :(得分:0)

如果没有代码的实际格式,很难准确回答,例如,如果您的字符串是

string[] suggestions = {"0: Yes", "1: No", "666: whatever"}

然后你可以用

之类的东西得到这个数字
sugestedString.Substring(0, sugestedString.IndexOf(':'));

编辑:我误解了这个问题。所以如果我现在理解正确,你可以用

来做
for(int i = 0; i < suggestions.Length; i++) {
  if(suggestions[i] == selectedString) {
    return i;
  }
}

如果您只在列表中找到所有可能建议的数字。

如果你在缩小的建议中寻找一个数字,那就更难了。

首先需要记下用户输入的内容(例如&#34; Aut&#34;)。然后你需要他实际选择的东西(例如&#34; Automotive&#34;)。通过这些内容,您可以搜索所有可能的建议,计算其中有多少满足用户输入的开头,最后选择哪一个是选定的。它可能看起来像这样:

int counter=0;
for(int i = 0; i < suggestions.Length; i++) {
  if( suggestions[i].StartsWith(typedString)) {
    counter++;
    if(suggestions[i] == selectedString) {
      counter;
    }
  }
}