public class MainWindowVM
{
public MainWindowVM()
{
PersonList = new ObservableCollection<Person>(Employees);
}
private Person[] Employees = new Person[]
{
new Person { ID = 1, Name = "Adam" },
new Person { ID = 2, Name = "Bill" },
new Person { ID = 10, Name = "Charlie" },
new Person { ID = 15, Name = "Donna" },
new Person { ID = 20, Name = "Edward" }
};
public ObservableCollection<Person> PersonList { get; set; }
}
Person.cs
public class Person
{
public string Name { get; set; }
public int ID { get; set; }
}
MainWindow.xaml (versión de trabajo Funcionalmente - No es lo que quiero mostrar)
<Window x:Class="TestApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<ComboBox Height="23" Width="300"
ItemsSource="{Binding Path=Objects}"
DisplayMemberPath="Name"
>
</ComboBox>
</Grid>
</Window>
MainWindow.x AML ( muestra correctamente - no funciona correctamente)
<Window x:Class="TestApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<ComboBox Height="23" Width="300"
ItemsSource="{Binding Path=Objects}"
>
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock DataContext="{Binding}">
<TextBlock.Text>
<MultiBinding StringFormat="{} {0} | {1}">
<Binding Path="ID" />
<Binding Path="Name" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</Window>
El segundo código muestra lo que quiero el cuadro combinado para mostrar {ID} | {Name}
, pero le quita una función común del ComboBox. En el primer ejemplo, cuando se selecciona el ComboBox, el usuario puede comenzar a escribir en él y hacer que salte por la lista. Por ejemplo, si presiona la letra A, salta a "Adam", B salta a "Bill", etc. Así se supone que debe funcionar un ComboBox. Pero, cuando anulo ComboBox ItemTemplate, pierde esa funcionalidad. ¿Hay alguna otra forma de vincular lo que necesito y mantener esa funcionalidad o reactivarla? Tal vez el ItemTemplate está mal configurado?
¿He entendido bien su pregunta o se encontraba buscando otra cosa? Avíseme si necesito aclarar algo o si estuve siguiendo el camino aquí :) –