2010-11-19 73 views
1

alt text幫助我綁定的Silverlight的DataGrid

我有一個名爲事件,你可以在圖片中看到的實體,它擁有與幾個bug列表。

然後,我有,我用我所有的事件連接列表到DataGrid:

 List<ExtendedIncident> allIncidents; 
       myGrid.ItemsSource = allIncidents; 

現在我在XAML代碼綁定一些值從每一個事件,像這樣:

<sdk:DataGrid AutoGenerateColumns="False" Name="grid" SelectionMode="Single" SelectionChanged="grid_SelectionChanged"> 
     <sdk:DataGrid.Columns> 
      <sdk:DataGridTemplateColumn Header="Incident"> 
       <sdk:DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <HyperlinkButton Content="{Binding CallId}" Click="HyperlinkButton_Click"></HyperlinkButton> 
        </DataTemplate> 
       </sdk:DataGridTemplateColumn.CellTemplate> 
      </sdk:DataGridTemplateColumn> 
      <sdk:DataGridTextColumn Header="Beskrivnig" Binding="{Binding Description}"></sdk:DataGridTextColumn> 
      <sdk:DataGridTextColumn Header="Beskrivnig" Binding="{Binding Status}"></sdk:DataGridTextColumn> 
     </sdk:DataGrid.Columns> 

我現在的問題是,我想添加一些列,這些列提供了來自相同行中相關(存儲在事件列表中)相關的錯誤的一些數據。我如何從事件中的錯誤列表中提供數據?

會很感激的任何幫助

回答

1

使用RowDetailsTemplate:

<sdk:DataGrid x:Name="dataGrid1" Height="400" IsReadOnly="True" > 
    <sdk:DataGrid.RowDetailsTemplate> 
     <DataTemplate> 
      <sdk:DataGrid ItemsSource={Binding BuggItems}/> 
     </DataTemplate> 
    </sdk:DataGrid.RowDetailsTemplate> 
</sdk:DataGrid> 

或可替代它聚合存儲在列表中的所有項目(以下一個例子,如果ID是字符串)的屬性。

public partial class Incident 
{ 
    public string IDs 
    { 
     get 
     { 
      return BuggItems.Aggregate((a,b) => a + "," + b); 
     } 
    } 
} 
+0

非常感謝RowDetailsTemplate提示,這確實有幫助,因爲很多事件都有很多連接到它們的錯誤,所以這將非常棒。關於另一個問題,事件是一個包含錯誤實體的列表,其中有很多其他值,所以問題是我應該如何提取這些數據。我想這樣做: Fore 2010-11-19 22:12:56

+0

我認爲解決問題的方法是在綁定到BuggItems的RowDetailsTemplate中插入另一個數據網格。或者,或者,如果您不希望將數據顯示在行中,則可以在部分類中的另一個屬性中聚合ID,並將新列綁定到該列。 – 2010-11-19 22:21:49