XAML 在WPF MVVM应用程序中,将嵌套数据网格中的选定项绑定到扩展器列表框时出现问题-有解决方案吗?

vlurs2pr  于 2023-05-27  发布在  其他
关注(0)|答案(1)|浏览(143)

在我的xaml中我有一个列表框,在这个列表框中我想显示扩展器,如果数据网格被扩展,则显示数据网格。除了绑定数据网格中的选定项外,其他都正常工作。它不会绑定到任何东西。

<ListBox Grid.ColumnSpan="2" Grid.Row="2" ItemsSource="{Binding Reizen}">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <Expander Header="{Binding Naam}" Height="auto" HorizontalAlignment="Left" VerticalAlignment="Center">
                            <DataGrid x:Name="datagridStores"
                                ItemsSource="{Binding Onkosten}"
                                SelectedItem="{Binding GeselecteerdeOnkost, UpdateSourceTrigger=PropertyChanged}"
                                AutoGenerateColumns="False"
                                IsReadOnly="True">
                                <DataGrid.Columns>
                                    <DataGridTextColumn Binding="{Binding Bedrag, StringFormat=C, ConverterCulture=nl-BE}" Header="Bedrag"/>
                                    <DataGridTextColumn Binding="{Binding Omschrijving}" Header="Omschrijving"/>
                                </DataGrid.Columns>
                            </DataGrid>
                        </Expander>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

我该怎么做?
我尝试了下面链接中的解决方案,但这对我不起作用。Wpf: How to bind SelectedItem from nested DataGrid

wfsdck30

wfsdck301#

当你运行它的时候,看看你的项目的输出。我猜有绑定错误。
一种解决方案可以是为所选项目的绑定提供相对源,可以是如下所示:
SelectedItem="{Binding DataContext.GeselecteerdeOnkost, RelativeSource={RelativeSource FindAncestor, AncestorType=Window}, UpdateSourceTrigger=PropertyChanged}"

相关问题