Привет Iam помощью вложенной DataGrid и следующее его определение, Вот скриншот вывода,Уплотненный Datagrid работает
В изображении выше, у меня есть 2 DataGrids. Если я нажму на любую строку outergrid, отобразится соответствующая внутренняя часть. Теперь я не понимаю, как обрабатывается это событие, и отображаются соответствующие внутренние данные сетки.
Это классовая структура, к которой И связывание моего DataGrid,
class MyClass
{
public string Col1{ get; set; }
public string Col2{ get; set; }
public string Col3{ get; set; }
public string Col4{ get; set; }
public string Col5{ get; set; }
public ObservableCollection<InnerObject> inner_object{ get; set; }
}
class InnerObject
{
public string EventName { get; set; }
public string Date { get; set; }
public string Time { get; set; }
public string Message { get; set; }
public int RIndex { get; set; }
}
<DataGrid
x:Name="objDatagrid"
ItemsSource="{Binding DataView}"
CanUserAddRows="False"
CanUserDeleteRows="False"
AutoGenerateColumns="False"
BorderBrush="Gray"
>
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<DataTrigger Binding="{Binding TDate}" Value="">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
<DataGrid.RowDetailsTemplate >
<DataTemplate>
<DataGrid
x:Name="objInnerDatagrid"
IsReadOnly="True"
ItemsSource="{Binding ElementName=objDatagrid, Path=SelectedItem.inner_object}">
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<DataTrigger Binding="{Binding Date}" Value="">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
<DataGrid.Columns>
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
<DataGrid.Columns>
<DataGridTextColumn Header="Col1" Width="SizeToHeader" Binding="{Binding Col1}" IsReadOnly="True"/>
<DataGridTextColumn Header="Col2" Width="80" Binding="{Binding Col2}" IsReadOnly="True"/>
<DataGridTextColumn Header="Col3" Width="80" Binding="{Binding Col3}" IsReadOnly="True"/>
<DataGridTextColumn Header="Col4" Width="120" Binding="{Binding Col4}" IsReadOnly="True"/>
<DataGridTextColumn Header="Col5" Width="100" Binding="{Binding Col5}" IsReadOnly="True"/>
</DataGrid.Columns>
</DataGrid>
Iam новичок в WPF. Может ли кто-нибудь объяснить мне приведенный выше код и его работу? Это будет отличная помощь. Спасибо заранее.
Большое спасибо. Ур помог. Я просто хочу знать, могу ли я создать ту же структуру datagrid программно со всеми этими RowDetailsTemplate – Surjeet