No estoy seguro de por qué no se pueden enlazar datos a SelectedItem en un ComboBox sin ver su código. A continuación, se muestra cómo hacerlo utilizando un CollectionView que tiene incorporada la administración de elementos actual compatible con comboboxes. CollectionView tiene una propiedad de obtención de CurrentItem que puede usar para obtener actualmente seleccionada.
XAML:
<Window x:Class="CBTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<StackPanel>
<ComboBox
ItemsSource="{Binding Path=Names}"
IsSynchronizedWithCurrentItem="True">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<TextBlock Text="{Binding Path=Names.CurrentItem}" />
</StackPanel>
</Window>
Código atrás:
using System.Collections.Generic;
using System.Windows;
using System.Windows.Data;
namespace CBTest
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
DataContext = new VM();
}
}
public class VM
{
public VM()
{
_namesModel.Add("Bob");
_namesModel.Add("Joe");
_namesModel.Add("Sally");
_namesModel.Add("Lucy");
Names = new CollectionView(_namesModel);
// Set currently selected item to Sally.
Names.MoveCurrentTo("Sally");
}
public CollectionView Names { get; private set; }
private List<string> _namesModel = new List<string>();
}
}
esto es extraño. Juraría que hice exactamente lo que usted ha sugerido antes, porque lo leí en algunos blogs ... Ahora lo intenté de nuevo y funcionó: P Mientras tanto me ayudó con esto si alguien está interesado XD // Establezca el nuevo Schoolclass creado como índice seleccionado en el control de IU .. SelectedSchoolclassIndex = (Schoolclasses.Count! = 0)? Schoolclasses.Count - 1: 0; – msfanboy
Acabo de tener este problema. Tenía 2 colecciones separadas, y olvidé el operador igual, por lo que el elemento actual se seleccionó de otra colección que la que asigné a XAML. Entonces la implementación de igual solucionó el problema. Pero seleccionar de la misma colección también solucionó el problema –