Используйте уменьшить здесь.
func exp(_ s : String, _ term: String) -> String{ //term_inator: Any Char not in the Sequence.
guard let first = s.first else {return ""}
return """
\(s.dropFirst().appending(term).reduce(("\(first)",1)){ r, c in
let t = c == r.0.last!
let tc = t ? r.1 : 0
let tb = t ? "" : "\(c)"
let ta = t ? "" : r.1 > 2 ? "\(r.1)" : r.1 == 2 ? "\(r.0.last!)" : ""
return (r.0 + ta + tb, tc + 1)
}.0.dropLast())
"""}
print(exp(initialString, " "))
let initialString = "abbbaaa" // ab3a3
let initialString = "aahhhgggg" // aah3g4
let initialString = "aabbaa" // aabbaa
Спасибо за предложения выше. В моей ситуации я могу выбрать «ядерный вариант», то есть - всякий раз, когда нужно изменить выбранный элемент, я полностью уничтожаю ComboBox, создаю новый и соответствующим образом устанавливаю его SelectedItem.
Смешно, но это работает.
Combobox - это довольно глючный элемент управления SL: - (.
В моем случае я отказался от декларативной привязки выбранного элемента и использовал неприятный подход к кодированию ... уродливый, но работает:
НТН Braulio
Некоторое время назад у меня возникала та же проблема, и, насколько я могу судить, это ошибка в ComboBox, когда при изменении ItemSource возникает проблема с макетом и плохая прокрутка.
Существует обходной путь путем вызова ComboBox.UpdateLayout между установкой ItemSource и SelectedItem.
Некоторое время назад я писал об этой проблеме в Попался при привязке данных ComboBox в Silverlight .
Мне еще предстоит проверить, существует ли проблема в Silverlight 3 Beta
Это ошибка в элементе управления ComboBox, связанная с изменяющимся указателем привязки ItemsSource. Я нашел следующее решение:
1) Всегда привязывать ItemsSource к наблюдаемой коллекции и никогда не сбрасывать указатель OC.
<ComboBox ItemsSource="{Binding MyList}" SelectedItem="{Binding MyItem}" />
Плохо:
MyList = new ObservableCollection();
Хорошо:
MyList.Clear();
MyList.AddRange(...);
2) Установить MyItem = null , перед очисткой MyList
В вашем случае вы изменяете ссылку на список всякий раз, когда вы меняете CurrentView. Следовательно, если SelectedItem не равен null,