Я пытаюсь сделать "редактор кода", как элемент управления. Я хочу автозаполнение для известных переменных и операторов. RadAutoCompleteBox делает почти то, что мне нужно, он просто удаляет выбранные элементы из списка, поэтому я могу использовать каждую переменную или оператор только один раз. Могу ли я отключить эту функцию?
Как уже упоминалось, я использовал RadAutoCompleteBox в SelectionMode = "Multiple" с ItemSource списка всех известных переменных и операторов. Я просто не смог найти опцию включения multi-multi-select.
XAML:
<telerik:GridViewDataColumn.CellEditTemplate>
<DataTemplate>
<telerik:RadAutoCompleteBox SelectedItem="{Binding RecipeCondition, Mode=TwoWay}" ItemsSource="{Binding DataContext.ConditionWordList, RelativeSource={RelativeSource AncestorType=telerik:RadGridView}}" SelectionMode="Multiple" AutoCompleteMode="SuggestAppend" TextSearchMode="Contains">
</telerik:GridViewDataColumn.CellEditTemplate>
Модель просмотра:
private void initFakeData()
{
string[] operators = { " AND ", " OR ", " NOT ", " + " , " - ", " * ", " / ", "=", "!=", ">", "<", ">=", "<=" };
string[] vars = { "{VAR_1}", "{VAR_2}", "{OTHER_VAR}", "{sumDamnVar}", "{121asdf}", "{121onji}", "{12123}"};
foreach(string oupii in operators)
{
ConditionWordList.Add(oupii);
}
foreach (string variable in vars)
{
ConditionWordList.Add(variable);
}
}
public ObservableCollection<EventWrapper> EventMappingList { get; set; } = new ObservableCollection<EventWrapper>();
public ObservableCollection<string> ConditionWordList{ get; set; } = new ObservableCollection<string>();
Я ожидаю, что в результате все еще будет предложен оператор "И" даже после того, как я набрал "{VAR_1} AND {VAR_2}"