绑定到另一个ObservableCollection内部的ObservableCollection

问题描述 投票:0回答:1

class attributes

Property[![][2]] 3

因此,我的ViewModel中有一个带有电影的ObservableCollection,在该ObservableCollection内部,还有另一个ObservableCollection,其中所有参与该电影的演员。我想在我的DataGrid中显示Actors ObservableCollection,但是我不知道该怎么做,你有什么主意吗?谢谢

<controls:DataGrid
      Grid.Row="1"
        x:Name="viewFilmes"
        Margin="12"
        VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
        HorizontalScrollBarVisibility="Visible"
        VerticalScrollBarVisibility="Visible"
        AlternatingRowBackground="Transparent"
        AlternatingRowForeground="Gray"
        AreRowDetailsFrozen="False"
        AreRowGroupHeadersFrozen="True"
        AutoGenerateColumns="False"
        CanUserSortColumns="False"
        CanUserReorderColumns="True"
        CanUserResizeColumns="False"
        ColumnHeaderHeight="32"
        MaxColumnWidth="400"
        FrozenColumnCount="0"
        GridLinesVisibility="None"
        HeadersVisibility="Column"
        RowDetailsVisibilityMode="Collapsed"
        SelectionChanged="viewFilmes_SelectionChanged"
        SelectionMode="Single"
        RowEditEnded="viewFilmes_RowEditEnded"
        RowGroupHeaderPropertyNameAlternative="Range"
        ItemsSource="{x:Bind GestaoDeFilmesViewModel.Filmes}">
            <controls:DataGrid.Columns>
                <controls:DataGridTextColumn Header="Id" IsReadOnly="True" Binding="{Binding Idfilme, Mode=OneWay}" Tag="Id"/>
                <controls:DataGridTextColumn Header="Nome" Binding="{Binding Nome, Mode=TwoWay}" Tag="Nome" />
                <controls:DataGridTextColumn Header="Ano" Binding="{Binding Ano, Mode=TwoWay}" Tag="Ano" />
                <controls:DataGridTextColumn Header="Duracao" Binding="{Binding Duracao, Mode=TwoWay}" Tag="Duracao" />
                <controls:DataGridTemplateColumn Header="Foto" Tag="Foto" >
                    <controls:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <StackPanel>
                                <control:FotoControl ImageSource="{Binding Foto, Mode=TwoWay}"></control:FotoControl>
                                <Button Click="Foto_Button_Click">Alterar Foto</Button>
                            </StackPanel>
                        </DataTemplate>
                    </controls:DataGridTemplateColumn.CellTemplate>
                </controls:DataGridTemplateColumn>
                <controls:DataGridTextColumn Header="Genero"  Tag="Genero"/>
                <controls:DataGridTextColumn Header="Diretor" Binding="{Binding Diretor.Nome, Mode=TwoWay}" Tag="Diretor"/>
                <controls:DataGridTextColumn Header="Escritor" Binding="{Binding Escritor.Nome, Mode=TwoWay}" Tag="Escritor"/>
                <controls:DataGridTemplateColumn Header="Elenco" Tag="Elenco">
                    <controls:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Button Content="Ver Elenco">
                                <Button.Flyout>
                                    <Flyout>
                                        <StackPanel>
                                            <TextBlock Style="{ThemeResource BaseTextBlockStyle}" Text="Elenco" Margin="0,0,0,12" />
                                            <!--<TextBox Text="{Binding Atores.Idator, Mode=TwoWay}"/>-->

                                        </StackPanel>
                                    </Flyout>
                                </Button.Flyout>
                            </Button>
                        </DataTemplate>
                    </controls:DataGridTemplateColumn.CellTemplate>
                </controls:DataGridTemplateColumn>

            </controls:DataGrid.Columns>
        </controls:DataGrid>
c# xaml uwp
1个回答
0
投票

如果您打算显示集合内容,则UWP提供GridViewListView控件。

像这样:

xaml.cs

public ObservableCollection<string> TestCollection {get; set;}

xaml

<GridView ItemsSource="{x:Bind TestCollection}"/>

如果您打算在ListView中显示GridViewDataGrid,则可以尝试将控件放在RowDetail中。像这样:

<controls:DataGrid ...>
   ...
   <controls:DataGrid.RowDetailsTemplate>
       <DataTemplate>
           <Grid>
               <GridView ItemsSource="{Binding Atores}">
               </GridView>
           </Grid>
       </DataTemplate>
   </controls:DataGrid.RowDetailsTemplate>
   ...
</controls:DataGrid>

以下一些文档可能会为您提供帮助:

最诚挚的问候。

© www.soinside.com 2019 - 2024. All rights reserved.