この手順では、グリッドの行の詳細セクションの設定を完成させます。RowDetailsTemplate を追加して詳細行の外観を設定し、詳細行の動作を設定するコードを追加します。
行の詳細を設定するには、次の手順に従います。
XAML |
コードのコピー
|
---|---|
<c1:C1DataGrid x:Name="c1DataGrid1" CanUserAddRows="False" Margin="5"> <c1:C1DataGrid.RowDetailsTemplate> <DataTemplate> <c1:C1DataGrid HeadersVisibility="Column" Margin="5" CanUserAddRows="False"/> </DataTemplate> </c1:C1DataGrid.RowDetailsTemplate> </c1:C1DataGrid> |
XAML |
コードのコピー
|
---|---|
<c1:C1DataGrid x:Name="c1DataGrid1" CanUserAddRows="False" LoadedRowDetailsPresenter="c1dg_LoadedRowDetailsPresenter" LoadingRow="c1dg_LoadingRow"> |
C# |
コードのコピー
|
---|---|
using System.Xml.Linq; using C1.Silverlight.DataGrid; using C1DataGrid; |
C# |
コードのコピー
|
---|---|
public MainPage()
{
InitializeComponent();
c1dg.ItemsSource = Data.GetSubCategories().Take(10);
}
|
C# |
コードのコピー
|
---|---|
private void c1dg_LoadedRowDetailsPresenter(object sender, C1.Silverlight.DataGrid.DataGridRowDetailsEventArgs e) { if (e.Row.DetailsVisibility == Visibility.Visible) { C1.Silverlight.DataGrid.C1DataGrid detailGrid = e.DetailsElement as C1.Silverlight.DataGrid.C1DataGrid; if (detailGrid.ItemsSource == null) { int subcategory = (e.Row.DataItem as Subcategory).ProductSubcategoryID; detailGrid.ItemsSource = Data.GetProducts((product) => product.Element("ProductSubcategoryID") != null && product.Element("ProductSubcategoryID").Value != "" && int.Parse(product.Element("ProductSubcategoryID").Value) == subcategory).Take(10); } } } |
C# |
コードのコピー
|
---|---|
private void c1dg_LoadingRow(object sender, DataGridRowEventArgs e) { if (e.Row.Index == 0) { e.Row.DetailsVisibility = Visibility.Visible; } } |
アプリケーションを保存して実行すると、グリッドに products.xml ファイルのデータが表示され、最初の行の詳細セクションが表示されていることを確認できます。
行の詳細セクションを折りたたんだり、別の行の詳細セクションを展開するには、行の行ヘッダーの矢印アイコンをクリックします。