Essayer de se lier à une collection en WPF, je me suis ce qui suit pour travailler:Reliure à DataGridComboBoxColumn de la collection
XAML:
<toolkit:DataGrid Name="dgPeoples"/>
CS:
namespace DataGrid
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1
{
private readonly ObservableCollection<Person> personList = new ObservableCollection<Person>();
public Window1()
{
InitializeComponent();
personList.Add(new Person("George", "Jung"));
personList.Add(new Person("Jim", "Jefferson"));
personList.Add(new Person("Amy", "Smith"));
dgPeoples.ItemsSource = personList;
}
}
}
unnessecary probablement, mais ici est la classe de la personne:
namespace DataGrid
{
public class Person
{
public string fName { get; set; }
public string lName { get; set; }
public Person(string firstName, string lastName)
{
fName = firstName;
lName = lastName;
}
}
}
Mais ce dont j'ai vraiment besoin c'est dans DataGridComboBoxColumn. Voici mes révisions:
XAML:
<toolkit:DataGrid Name="dgPeoples" Grid.Row="0" AutoGenerateColumns="False">
<toolkit:DataGrid.Columns>
<toolkit:DataGridComboBoxColumn Width="5*"/>
<toolkit:DataGridComboBoxColumn Width="5*"/>
</toolkit:DataGrid.Columns>
</toolkit:DataGrid>
C#:
Stays même.
Problème Maintenant, c'est que j'obtiens des colonnes combobox vides! Des idées comment je peux obtenir ceci pour fonctionner? À long terme, j'ai besoin d'une liaison bidirectionnelle, où un double clic sur la colonne prénom affiche la boîte de dialogue qui contient alors les options de tous les prénoms possibles dans la collection (à savoir George, Jim et Amy).
Grateful toute aide!
Je suspecte de lire ceci: http: // blogs.msdn.com/vinsibal/archive/2008/10/31/wpf-datagrid-datagridcomboboxcolumn-v1-intro.aspx est l'endroit où le problème se pose. J'ai besoin de définir SelectedItemBinding dans le XAML, mais puisque ma liste est définie dans le code, comment puis-je faire cela? Non, je ne veux pas le mettre en XAML, car une autre partie de cette application permet d'ajouter des objets people, donc la liste change constamment. – baron