Невозможно заполнить строки DataGrid в DataGrid пользовательского элемента управления RowDetailsTemplate. - PullRequest
0 голосов
/ 10 февраля 2012

У меня проблема при попытке заполнения DataGrid внутри моего пользовательского элемента управления, который встроен в родительский DataGrid RowDetailsTemplate . дочерний DataGrid (который находится внутри пользовательского элемента управления) должен заполнять связанную информацию, унаследованную от его родительского DataGrid.Каким-то образом это не работает, как ожидалось.Но когда я пытаюсь связать текстовый блок в моем дочернем пользовательском элементе управления, это работает!Надеюсь, что кто-то может помочь мне с этим: -)

Большое спасибо

Это мой родительский 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>

И это мои дочерние элементы управления - который содержитдругая 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}"                   
               />

1 Ответ

1 голос
/ 10 февраля 2012

Это выглядит совсем не так:

ItemsSource="{Binding}"

Или ваши вещи на самом деле являются коллекциями?Если нет, лучше указать путь к внутренним коллекциям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...