我有一个带有TabControl的窗口,我已经绑定到一个objec列表,我称之为MyItem:
<TabControl Name="MyTabPNL" Background="Gainsboro"
ItemsSource="{Binding MyItemList, ElementName=WatcherWindow}"
ContentTemplate="{StaticResource tabItemTemplate}">
</TabControl>
这个MyItem类有一个ObservableCollection,我想绑定到Listview,我是用DataTemplate做的。 目标:我想在XAML中自动排序这个ObservableCollection。通常我会使用CollectionViewSource,但我找不到这种方法......我尝试过这样的东西:
<DataTemplate x:Key="tabItemTemplate">
<DataTemplate.Resources>
<CollectionViewSource x:Key='dayList' Source="{Binding MyDayList}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="MyDate" Direction="Descending" />
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
</DataTemplate.Resources>
<Grid >
<ListView ItemsSource="{Binding Source={StaticResource dayList}}" >
<ListView.View>
<GridView x:Name="gridvwDay" >
<GridViewColumn Header="MyDate"
CellTemplate="{StaticResource myCellTemplatePNLDate}"
HeaderContainerStyle="{StaticResource CustomHeaderStyleNeutral}"
Width="70" />
</GridView>
</ListView.View>
</ListView>
</Grid>
但每次我都有同样的错误:
System.Windows.Data错误:2:不能 找到管理FrameworkElement或 Target的FrameworkContentElement 元件。 BindingExpression:路径= MyDayList; 的DataItem = NULL;目标元素是 'CollectionViewSource' (的HashCode = 58368655);目标财产 是'来源'(类型'对象')
我找不到在ListView ItemsSource中的dayList和CollectionRessource中的dayList之间建立链接的方法。 你们有个主意吗?
仅供参考:由于我正在使用的Class的性质,对ObservableCollection进行预排序是不可行的。
答案 0 :(得分:1)
你试过简单吗,
<ListView ItemsSource="{StaticResource dayList}">
根据文档:http://msdn.microsoft.com/en-us/library/ms750950.aspx
当它在页面上只是静态时你不需要绑定:)