我有下面的代碼行之有效:使用Binding.Source不使用資源的
<Viewbox.Resources>
<CollectionViewSource x:Key="viewSource"
Source="{Binding Path=SelectionList}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="Description" />
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
</Viewbox.Resources>
<ComboBox ItemsSource="{Binding Source={StaticResource ResourceKey=viewSource}}"/>
我想直接把我的CollectionViewSource在我的組合框不使用這樣的任何資源:
<ComboBox SelectedItem="{Binding Path=Value, Mode=TwoWay}">
<ComboBox.ItemsSource>
<Binding>
<Binding.Source>
<CollectionViewSource Source="{Binding Path=SelectionList}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="Description" />
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
</Binding.Source>
</Binding>
</ComboBox.ItemsSource>
</ComboBox>
但這樣一來我的組合框始終是空的,我得到以下綁定錯誤:
System.Windows.Data Error: 2 : Cannot find governing FrameworkElement or FrameworkContentElement for target element. BindingExpression:Path=SelectionList; DataItem=null; target element is 'CollectionViewSource' (HashCode=1374711); target property is 'Source' (type 'Object')
有誰知道我該怎麼做?
這只是一個猜測,但你可能不得不顯式設置CollectionViewSource.Source的綁定源:'
Clemens
2012-02-09 15:44:28
感謝您的評論我檢查了我的綁定錯誤。在你的建議中,我可以放入Source = ... – Nicolas 2012-02-09 16:04:00
將其設置爲擁有SelectionList屬性的對象。 – Clemens 2012-02-09 16:59:47