Reputation: 847
I have a problem while trying to populate a DataGrid inside my User Control which is embedded on parent DataGrid RowDetailsTemplate. The child DataGrid (which is inside the user control) should populate the related information inherited from its parent DataGrid. Somehow it doesn't work as expected. But when I'm trying to bind a Text Block within my child user control, it works! Hope someone can help me with this:-)
Thanks a lot
This is my parent DataGrid:
<Custom:DataGrid x:Name="MainDataGrid"
Grid.Row="1"
Margin="10,10,10,12"
HorizontalAlignment="Stretch"
AlternatingRowBackground="AliceBlue"
AlternationCount="2"
AutoGenerateColumns="False"
EnableColumnVirtualization="false"
EnableRowVirtualization="false"
IsReadOnly="False"
ItemsSource="{Binding ChangeOverData}"
RowDetailsVisibilityMode="Visible"
SelectedItem="{Binding Path=ChangeOverDetailsSelected,
Mode=TwoWay,
Source={StaticResource GridOverviewViewModel}}"
SelectionMode="Single"
SelectionUnit="FullRow">
<Custom:DataGrid.Background>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#F7BFEE86" />
<GradientStop Offset="0.966" Color="#13A7E4FF" />
</LinearGradientBrush>
</Custom:DataGrid.Background>
<Custom:DataGrid.Columns>
<Custom:DataGridTemplateColumn Header="">
<Custom:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<Button Name="btnWIP"
Width="20"
Height="20"
HorizontalAlignment="Left"
Command="{Binding Source={StaticResource GridOverviewViewModel},
Path=ButtonReloadWIPDetails}"
Content="WIP"
Style="{DynamicResource RoundGlassButton}">
</Button>
</StackPanel>
</DataTemplate>
</Custom:DataGridTemplateColumn.CellTemplate>
</Custom:DataGridTemplateColumn>
<Custom:DataGridTextColumn Binding="{Binding StartDate,
StringFormat={}{0:dd/MM/yyyy}}"
Header="StartDate"
IsReadOnly="True" />
<Custom:DataGridTextColumn Binding="{Binding MacNo}"
Header="MacNo"
IsReadOnly="True" />
<Custom:DataGridTextColumn Binding="{Binding PosNo}"
Header="Pos"
IsReadOnly="True" />
<Custom:DataGridTextColumn Binding="{Binding Position}"
Header="Position"
IsReadOnly="True" />
<Custom:DataGridTextColumn Binding="{Binding CurMO}"
Header="CurrentMO"
IsReadOnly="True" />
<Custom:DataGridTextColumn Binding="{Binding NextMO}"
Header="NextMO"
IsReadOnly="True">
<Custom:DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Foreground" Value="{Binding MOFontColor}" />
</Style>
</Custom:DataGridTextColumn.ElementStyle>
</Custom:DataGridTextColumn>
</Custom:DataGrid.Columns>
<Custom:DataGrid.RowDetailsTemplate>
<DataTemplate>
<local:DataGridRowDetails x:Name="CODetails"
/>
</DataTemplate>
</Custom:DataGrid.RowDetailsTemplate>
<Custom:DataGrid.GroupStyle>
<GroupStyle ContainerStyle="{StaticResource GroupHeaderStyle}">
<GroupStyle.Panel>
<ItemsPanelTemplate>
<Custom:DataGridRowsPresenter />
</ItemsPanelTemplate>
</GroupStyle.Panel>
</GroupStyle>
</Custom:DataGrid.GroupStyle>
</Custom:DataGrid>
And this is my child user controls - which contains another DataGrid
<Custom:DataGrid Name="dataGrid1"
Width="Auto"
Margin="0,0,0,45"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
AlternatingRowBackground="Azure"
AlternationCount="2"
AutoGenerateColumns="False"
ItemsSource="{Binding}"
>
<Custom:DataGrid.Columns>
<Custom:DataGridTextColumn Binding="{Binding FIF}"
Header="FIF"
IsReadOnly="True" />
<Custom:DataGridTextColumn Binding="{Binding MacNo}"
Header="MacNo"
IsReadOnly="True" />
<Custom:DataGridTextColumn Binding="{Binding NomQty}"
Header="NomQty"
IsReadOnly="True" />
</Custom:DataGrid.Columns>
</Custom:DataGrid>
<TextBlock Name="textBlock1"
Width="85"
Height="23"
Margin="3,83,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Text="{Binding Path=NextMO}"
/>
Upvotes: 0
Views: 817
Reputation: 184647
This doesn't look right at all:
ItemsSource="{Binding}"
Or are your items actually collections themselves? If not you better specify a path to the internal collections.
Upvotes: 1