ListBox ItemsSource-WPF-Bindung

Ich bin nicht zu verstehen, etwas über die Bindung. Ich habe eine DataTemplate für Typ-Objekt, das funktioniert, aber dort möchte ich ein anderes ListBox und festlegen der Daten, die von einer der Eigenschaften eines Objekts. Ich habe mit Snoop Blick auf die Daten, Kontext und der datenkontext des ListBox im Objekt DataTemplate ist ein Objekt, aber es ist ein Fehler mit der ItemsSource und ich weiß nicht, warum. Ich mache ItemsSource={Binding componentList, Mode=TwoWay} und ein Objekt hat eine componentList und componentList ist ein ObservableList. Was bin ich?

Hier mein XAML code:

<Window.Resources>

<DataTemplate DataType="{x:Type properties:Component}">
  <StackPanel>
    <TextBlock Text="TEST COMPONENT" />
    <ListBox DataContext="{Binding propertyList}" ItemsSource="{Binding propertyList}" />
  </StackPanel>
</DataTemplate>

<DataTemplate DataType="{x:Type properties:Object}">
  <StackPanel>
    <TextBlock Text="TEST OBJECT" />
    <ListBox ItemsSource="{Binding componentList, Mode=TwoWay}" />
  </StackPanel>
</DataTemplate>

</Window.Resources>

Und mein C# - code:

public class Component
{
  public string name;
  public ObservableCollection<IProperty> propertyList;
}

public class Object
{
  public UnsignedProperty objectID;
  public ObservableCollection<Component> componentList;
}

Ich eine ListBox im code, und legen Sie es ItemsSource um eine Liste von Objekten und sehen, wie mein Objekt DataTemplate, aber da hört es

ListBox properties = new ListBox();
ObservableCollection<Properties.Object> t = new ObservableCollection<Properties.Object>();
t.Add(selectedObject); //potentially more objects
properties.ItemsSource = t;
PropertyPane.Content = properties;

jede Hilfe wäre sehr geschätzt werden. Danke!

Sie müssen die Benutzer-CLR-Eigenschaften in Ihre Bindungen , was Sie haben, sind Felder , componentList mit einem Setter und Getter.
wow, ich wusste, es würde etwas so einfach. Danke! das machte alles fallen perfekt. Braucht man eigentlich DependancyProperties? oder einfach nur ein get; set;?
DependancyProperties sind das in der Regel das Ziel der Inhalte ist die DP-wo, wie alle diese binden Sie an es von Sie der DataContext ist eine CLR-Eigenschaft. nur DP ' s werden verbindliche Ziele , aber Sie können auch eine Verbindliche Quelle. regelmäßige CLR-Eigenschaften können nur durch eine verbindliche Quelle.

InformationsquelleAutor user2013535 | 2014-03-16

Schreibe einen Kommentar