Как отсортировать ListView в DataTemplate только в XAML? - PullRequest
3 голосов
/ 10 сентября 2010

У меня есть окно с TabControl, которое я связал со списком объектов, я буду называть MyItem:

    <TabControl Name="MyTabPNL"  Background="Gainsboro"
        ItemsSource="{Binding MyItemList, ElementName=WatcherWindow}"
        ContentTemplate="{StaticResource tabItemTemplate}">
    </TabControl>

Этот класс MyItem имеет ObservableCollection, которую я хочу привязать к Listview, я делаю это с DataTemplate. ЦЕЛЬ: Я хотел бы автоматически отсортировать эту коллекцию ObservableCollection в XAML. Обычно я бы использовал 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 или FrameworkContentElement для цели элемент. BindingExpression: Path = MyDayList; DataItem = NULL; целевой элемент 'CollectionViewSource' (HashCode = 58368655); целевое свойство is 'Source' (тип 'Object')

Я не могу найти способ сделать ссылку между dayList в ListView ItemsSource и dayList в CollectionRessource. Ребята, у вас есть идея?

К вашему сведению: предварительная сортировка ObservableCollection невозможна из-за природы класса, который я использую.

1 Ответ

1 голос
/ 20 июня 2013

Вы пробовали просто,

<ListView ItemsSource="{StaticResource dayList}">

Согласно документу: http://msdn.microsoft.com/en-us/library/ms750950.aspx

Вам не нужно связывать, когда на странице просто статично :)

...