Привязка ComboBox. SelectedItem в Silverlight (больше)

Используйте уменьшить здесь.

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
8
задан Community 23 May 2017 в 11:52
поделиться

4 ответа

Спасибо за предложения выше. В моей ситуации я могу выбрать «ядерный вариант», то есть - всякий раз, когда нужно изменить выбранный элемент, я полностью уничтожаю ComboBox, создаю новый и соответствующим образом устанавливаю его SelectedItem.

Смешно, но это работает.

1
ответ дан 5 December 2019 в 12:12
поделиться

Combobox - это довольно глючный элемент управления SL: - (.

В моем случае я отказался от декларативной привязки выбранного элемента и использовал неприятный подход к кодированию ... уродливый, но работает:

http://blogs.msdn.com/mikehillberg/archive/2009/03/26/implementing-selectedvalue-with-the-silverlight-combobox.aspx

НТН Braulio

0
ответ дан 5 December 2019 в 12:12
поделиться

Некоторое время назад у меня возникала та же проблема, и, насколько я могу судить, это ошибка в ComboBox, когда при изменении ItemSource возникает проблема с макетом и плохая прокрутка.

Существует обходной путь путем вызова ComboBox.UpdateLayout между установкой ItemSource и SelectedItem.

Некоторое время назад я писал об этой проблеме в Попался при привязке данных ComboBox в Silverlight .

Мне еще предстоит проверить, существует ли проблема в Silverlight 3 Beta

0
ответ дан 5 December 2019 в 12:12
поделиться

Это ошибка в элементе управления 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,

13
ответ дан 5 December 2019 в 12:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: