WPF Binding ListBox Master/Detail

Ich kann diese Arbeit mit einer XmlDataSource aber nicht mit meinen eigenen Klassen. Alles was ich will zu tun ist, binden Sie das Listenfeld, um meine Sammlung-Instanz und verknüpfen Sie dann die textbox in der listbox, so kann ich Bearbeiten Sie den Namen der person ein (zwei-Wege). Ich habe absichtlich gehalten diese so einfach wie möglich in der Hoffnung, dass jemand in die Leerstellen zu füllen.

XAML:

<Window x:Class="WpfListTest.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:WpfListTest"
    Title="Window1" Height="300" Width="600">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="160"/>
            <ColumnDefinition Width="3"/>
            <ColumnDefinition Width="1*"/>
        </Grid.ColumnDefinitions>
        <DockPanel Grid.Column="0">
            <ListBox />
        </DockPanel>
        <DockPanel Grid.Column="2">
            <StackPanel>
                <Label>Name</Label>
                <TextBox />
            </StackPanel>
        </DockPanel>
    </Grid>
</Window>

C# - code-behind:

namespace WpfListTest
{
    ///<summary>
    ///Interaction logic for Window1.xaml
    ///</summary>
    public partial class Window1 : Window
    {
        public People MyPeeps = new People();

        public Window1()
        {
            InitializeComponent();

            MyPeeps.Add(new Person("Fred"));
            MyPeeps.Add(new Person("Jack"));
            MyPeeps.Add(new Person("Jill"));
        }
    }

    public class Person
    {
        public string Name { get; set; }

        public Person(string newName)
        {
            Name = newName;
        }
    }

    public class People : List<Person>
    {
    }
}

Alle Beispiele auf der web zu haben scheinen, was ist effektiv eine statische Klasse Rückkehr-code-definierten Daten (wie return new Person("bla bla")), anstatt meine eigene Instanz einer Sammlung - in diesem Fall MyPeeps. Oder vielleicht bin ich nicht aussprechen die richtigen Zauberspruch.

Eines Tages, ich könnte ein plötzlicher Durchbruch für das Verständnis dieser Bindung Zeug, aber im moment verwirren mich. Jede Hilfe zu schätzen.

  • Dutzende von Dingen. Anstatt zu verwirren, das Problem mit fragwürdigen code, ich habe gerade wieder von vorn begonnen, es einfach zu halten. Ich habe es tatsächlich geschafft, um die Liste der box enthalten die Elemente, die mit einem einfachen testListBox.DataContext = MyPeeps; - Anweisung, aber ich kann jetzt nicht die text-box synchronisiert. Ein Schritt vorwärts, zwei zurück.
InformationsquelleAutor GeoffM | 2011-09-21
Schreibe einen Kommentar