WPF Databinding, um generische Liste<>

Bin ich etwas falsch .. Sie wissen, wie es ist.

Habe ich versucht das Spiel mit ItemsSource , DataContext , DisplayMemberPath und SelectedValuePath und ich erhalte entweder eine leere Liste, eine Liste die ToString-Methode aufgerufen wird, in der Person-Objekt;

WAS WIRKLICH HELFEN WÜRDE, ist jemand für das veröffentlichen einer Antwort, die funktioniert für dieses Beispiel.

Habe ich vereinfacht das problem, wie ich habe Schwierigkeiten, die im Allgemeinen mit databinding Generika.

Habe ich eine einfache Generische Liste von Personen und wollen, binden Sie es zu einem combo. (will auch versuchen, verwenden Sie ein ListView-Steuerelement zu).

Entweder ich bekomme eine Liste von Rohlingen oder eine Liste von " xxxx.Person', wobei xxxx = namespace

       <Window x:Class="BindingGenerics.MainWindow"
                xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                Title="MainWindow" Height="300" Width="300">
            <Grid>

                <ComboBox Name="ComboBox1"
                          ItemsSource="{Binding}"
                          Height="50"
                          DisplayMemberPath="Name"
                          SelectedValuePath="ID"
                          FontSize="14"
                          VerticalAlignment="Top">
                </ComboBox>

            </Grid>
        </Window>



using System.Windows;
using System.ComponentModel;

namespace BindingGenerics
{
    ///<summary>
    ///Interaction logic for MainWindow.xaml
    ///</summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            Person p = new Person();
            //I have tried List and BindingList
            //List<Person> list = new List<Person>();
            BindingList<Person> list = new BindingList<Person>();

            p.Name = "aaaa";
            p.ID = "1111";
            list.Add(p);

            p = new Person();
            p.Name = "bbbb";
            p.ID = "2222";
            list.Add(p);

            p = new Person();
            p.Name = "cccc";
            p.ID = "3333";
            list.Add(p);

            p = new Person();
            p.Name = "dddd";
            p.ID = "4444";
            list.Add(p);

            ComboBox1.DataContext = list;
        }
    }

    public struct Person
    {
        public string Name;
        public string ID;
    }
}
  • Ich habe versucht, Ihre Probe-und es funktioniert für mich. Außer, das zeigt dddd mehrere Male.
InformationsquelleAutor Adam | 2010-02-16
Schreibe einen Kommentar