このサイトおよびXAMLでネストされたデータグリッドを作成する方法を示したコードが多数見つかりましたが、同じコードを取得するためのC#コードの使用方法に関する情報は見つかりません結果。私ができるようにしたいのは、これを次のように変換することです:動的にネストされたWPF DataGridを構築する
<DataGrid ...>
<DataGrid.Columns>
<DataGridTextColumn Header="Received Date" Binding="{Binding Received}" .../>
...
</DataGrid.Columns>
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<DataGrid ItemsSource="{Binding Details}" ...>
<DataGrid.Columns>
<DataGridTextColumn Header="Log Date" Binding="{Binding LogDate}" />
...
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
<DataGrid>
to C#のコードです。コードは、私が自動生成した場合に動作します -
public class MessageData {
Guid MessageId {get; set;}
DateTime ReceivedDate { get; set; }
...
List<EventDetail> Details { get; set; }
}
public class EventDetail {
Guid MessageId { get; set; }
DateTime LogDate { get; set; }
string LogEvent { get; set; }
...
}
それは今、私はそれのほとんどが内部データグリッドの列を定義することができることを除いて働いて得ることができるようです:
データ構造は、このようなものですしかし、私は内側のグリッドの列を定義する方法を理解することができません。
DataGrid dg = new DataGrid();
...
dg.IsReadOnly = true;
FrameworkElementFactory details = FrameworkElementFactory(typeof(DataGrid));
details.SetBinding(ItemsControl.ItemsSourceProperty, new Binding("Details"));
details.SetValue(DataGrid.AutoGenerateColumnsProperty, true);
DataTemplate dt = new DataTemplate(typeof(DataGrid));
dt.VisualTree = details;
dt.RowDetailsTemplate = dt;
dg.ItemsSource = myDataSouce;
この作品が、私はfalseにAutoGenerateColumnsを設定したときに - と、それが失敗した列を定義しようとする...コードビハインドでデータグリッドを作成
私はDataTemplateのものを持っている - しかし、私が知って投げていただきました外のデータグリッドと... –
はなぜべきinnergrid間のデータバインディングですそのバインディングは何か難しいですか? 'AncestorType = {x:Type DataGrid} 'の' RelativeSource'検索でネストとネストされたデータグリッドのリンクができませんか? –