Я думаю с новым циклом foreach, маркировка может быть действительно ясной.
, Например:
sentence: for(Sentence sentence: paragraph) {
for(String word: sentence) {
// do something
if(isDone()) {
continue sentence;
}
}
}
я думаю, что взгляды действительно очищают при наличии Вашей маркировки то же как Вашу переменную в новом для - каждый. На самом деле возможно, Java должен быть злым и добавить неявные маркировки для - каждый переменные heh
То, что окружает вашу панель, является контейнером по умолчанию. Вам необходимо применить к контейнеру свойство TextSearch.Text. Вы должны иметь возможность сделать это, установив свойство через ItemContainerStyle следующим образом:
<ComboBox.ItemContainerStyle>
<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="TextSearch.Text">
<Setter.Value>
<MultiBinding StringFormat="{} {0} {1}">
<Binding Path="FirstName"/>
<Binding Path="LastName"/>
</MultiBinding>
</Setter.Value>
</Setter>
</Style>
</ComboBox.ItemContainerStyle>
Краткий ответ: то, что вы хотите сделать, нельзя сделать непосредственно в XAML, но есть другие способы сделать это.
Длинный ответ: ComboBox ищет свойство TextSearch.Text напрямую для элементов данных, хранящихся в коллекции Items или ItemsSource. Следовательно, вы не можете установить свойство в шаблоне данных или стиле, потому что они применяются к объектам, используемым для отображения элементов данных, а не к самим элементам данных.
В частности, если вы посмотрите примеры на TextSearch class , вы увидите, что они прикрепляют свойство TextSearch.Text к объектам Image, которые входят в коллекцию ComboBox.Items. Вы можете сделать это в своей программе, сделав Person объектом DependencyObject, но я не думаю, что вы хотите устанавливать свойство для каждого отдельного объекта, подобного этому.
У вас есть несколько вариантов здесь:
Если вы можете изменить класс Person, вы можете либо определить метод ToString () для возврата текста для автозаполнения, либо определить произвольное свойство, такое как Fullname, и установить Textsearch.TextPath в ComboBox. Например:
public class Person
{
string FirstName { get; set; }
string LastName {get; set; }
string FullName { get { return String.Format("{0} {1}", FirstName, LastName); } }
}
и
<ComboBox TextSearch.TextPath="FullName" ItemsSource="collectionOfPersons"/>
В качестве альтернативы, если вы не хотите касаться Person, вы можете создать класс-оболочку, который предоставляет эти свойства.