Vous ne savez pas pourquoi vous ne pouvez pas lier des données à SelectedItem sur un ComboBox sans voir votre code. Ci-dessous vous montre comment le faire en utilisant un CollectionView qui a la gestion courante d'article intégrée dans laquelle les comboboxes soutiennent. CollectionView a une propriété Get CurrentItem que vous pouvez utiliser pour être sélectionné.
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>
code derrière:
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>();
}
}
c'est bizarre. Je pourrais jurer que je l'ai fait exactement ce que vous avez dit avant parce que je l'ai lu sur certains blogs ... Maintenant j'ai essayé à nouveau et cela a fonctionné: P En attendant, j'aidé avec ce si quelqu'un est intéressé XD // Définir le nouveau Schoolclass créé comme index sélectionné dans le contrôle d'interface utilisateur .. SelectedSchoolclassIndex = (Schoolclasses.Count! = 0)? Schoolclasses.Count - 1: 0; – msfanboy
Juste eu ce problème. J'ai eu 2 collections séparées, et j'ai oublié l'opérateur d'égal à égal de sorte que le currentItem a été choisi d'une autre collection que celle que j'ai liée à XAML. La mise en œuvre équivaut donc à résoudre le problème. Mais la sélection de la même collection a également résolu le problème –