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!
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Ergänzung zu meinen Ausführungen oben:
Sie nicht haben, um eine
ListBox
im code, erstellen Sie im XAML-Code und binden Sie eine Sammlung, um IhreItemsSource
(Dependency Property).Etwa so:
C#:
XAML :
Darüber hinaus hier ist eine Fortsetzung von code:
C#:
XAML:
InformationsquelleAutor eran otzap