2013-07-17 45 views
0

我有一個數據網格與分組,我試圖樣式的模板添加一些關於組的摘要。從ReadOnlyObservableCollection轉換爲列表<MyClass>

IN 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; 

MyClass的

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

我已經創建了一個轉換器來獲取同一組的項目,但是我在將對象轉換爲List<MyClass>()時遇到問題。我收到此錯誤

無法轉換類型的對象 'System.Collections.ObjectModel.ReadOnlyObservableCollection 1[System.Object]' to type 'System.Collections.Generic.List 1 [MyClass的]'。 `

在Converter.cs

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

有誰知道我應該怎麼辦轉換?

+0

爲什麼你需要一個列表? –

+0

因爲商品來源是MyClass的列表,所以我想在列表 – noobie

回答

0

使用LINQ。

public object Convert(object values, Type targetType, object param, CultureInfo culture) { 
    var source = (ReadOnlyObservableCollection<object>) values; 
    List<MyClass> list = source.OfType<MyClass>().ToList(); 
    ... 
} 
+0

內對屬性「Value」進行求和,但這些轉換不起作用。它返回無法投射'System.Collections.ObjectModel.ReadOnlyObservableCollection'1 [System.Object]'類型的對象來鍵入'System.Collections.ObjectModel.ReadOnlyObservableCollection'1 [MyClass]'。 – noobie

+0

我改變了我的答案。 – Memoizer

+0

它像魅力一樣工作。謝謝。 – noobie