0

我有一个带有分组的数据网格,我正在尝试设置模板的样式以添加一些关于组的摘要。

在 XAML DataGrid.RowGroupHeaderStyle

        <Grid Grid.Column="3" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Stretch" Margin="0,1,0,1" >
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="200"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>

            <TextBlock Grid.Column="0" Text="{Binding Name}" Margin="4,0,0,0" />
            <TextBlock Grid.Column="1" Text="{Binding Items, Converter="{StaticResource summaryConverter}"}" />
        </Grid>

数据网格项源的绑定

    PagedCollectionView collection = new PagedCollectionView(e.Result.ToList<MyClass>());
    collection.GroupDescriptions.Add(new PropertyGroupDescription("Name"));
    dataGrid.ItemsSource = collection;

我的课

    class MyClass {
        public string Name;
        public double Value;
    }

我创建了一个转换器来获取同一组的项目,但我在将对象转换为List<MyClass>(). 我收到此错误

无法转换类型为“System.Collections.ObjectModel.ReadOnlyObservableCollection 1[System.Object]' to type 'System.Collections.Generic.List1[MyClass]”的对象。`

在 Converter.cs 中

    public object Convert(object values, Type targetType, object param, CultureInfo culture) {
        var source = (List<MyClass>)values;
    }

有谁知道我应该如何进行转换?

4

1 回答 1

1

使用 LINQ。

public object Convert(object values, Type targetType, object param, CultureInfo culture) {
    var source = (ReadOnlyObservableCollection<object>) values;
    List<MyClass> list = source.OfType<MyClass>().ToList();
    ...
}
于 2013-07-17T06:38:42.613 回答