den folgenden Code Gegeben:WPF ListBox Itemssource Static/Binding Frage
<Window x:Class="WpfApplication76.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:col="clr-namespace:System.Collections;assembly=mscorlib"
Title="Window1" Height="300" Width="300">
<Window.Resources>
<CollectionViewSource x:Key="myCol">
<CollectionViewSource.Source>
<col:ArrayList>
<ListBoxItem>Uno</ListBoxItem>
<ListBoxItem>Dos</ListBoxItem>
<ListBoxItem>Tres</ListBoxItem>
</col:ArrayList>
</CollectionViewSource.Source>
</CollectionViewSource>
</Window.Resources>
<Grid>
<ListBox ItemsSource="{StaticResource myCol}" />
<ListBox ItemsSource="{Binding Source={StaticResource myCol}}" />
</Grid>
</Window>
In diesem Beispiel ist die
<ListBox ItemsSource="{StaticResource myCol}" />
ist mir ein Fehler beschweren, dass es nicht zu einem "Collection" Objekt binden kann.
Aber die andere Listbox:
<ListBox ItemsSource="{Binding Source={StaticResource myCol}}" />
bindet völlig in Ordnung.
Also meine Frage ist, warum funktioniert einer und der andere nicht? Werden am Ende nicht beide ItenSources auf das gleiche Objekt "CollectionViewSource" gesetzt?
Vielen Dank.
Danke Mike. Ich verstehe, was das Problem ist. Meine Frage war wirklich mehr darauf ausgerichtet, warum der Binding sich die Freiheit nimmt, einfach eine Eigenschaft aus dem "CollectionViewSource" -Objekt auszuwählen und nur daran zu bangen? Ich meine, warum nimmt die Erweiterung "StaticResource" nicht die Freiheit, dasselbe zu tun? – Rene
Art von Raten, aber StaticResource sagt nur "hol mir dieses Ding", wo Binding sagt "hol mir etwas, an das ich mich binden kann". StaticResource ist mehr literal. Es hat keinen Verwendungskontext, während das System bei Binding weiß, warum Sie nach der Ressource fragen. Chris Andersons Buch "Essential WPF" denke ich. Beschreibt die Reihenfolge der Dinge, die passiert, wenn eine Bindung nicht genau herausfinden kann, was zu tun ist. Ich habe es nicht praktisch, aber ich werde es versuchen und nachschlagen. Es könnte sagen, was in diesem Fall passiert. –