WPF DataGrid Grouping RelativeSource проблема - PullRequest
0 голосов
/ 27 ноября 2018

Я создал сетку данных со стилем группы в своем приложении wpf и mvvm.

Вкратце: К сожалению, я получаю следующую ошибку вывода для каждой строки (элемента):

System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.DataGrid', AncestorLevel='1''. BindingExpression:Path=AreRowDetailsFrozen; DataItem=null; target element is 'DataGridDetailsPresenter' (Name=''); target property is 'SelectiveScrollingOrientation' (type 'SelectiveScrollingOrientation')
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.DataGrid', AncestorLevel='1''. BindingExpression:Path=HeadersVisibility; DataItem=null; target element is 'DataGridRowHeader' (Name=''); target property is 'Visibility' (type 'Visibility')

Я спросил Google об этой проблеме и прочитал в сообщении за 2015 год, что может быть ошибкав .net Framework - если это правда, кажется, что проблема еще не решена.Из-за этого я обновил .net framework с 4.5.1 до 4.6.1 (и 4.7) в моем проекте, но это не решило мою проблему.Сейчас я использую 4.6.1.Я не уверен, как решить эту проблему - я попробовал несколько решений, которые я нашел.

Вот код:

    <DataGrid x:Name="CodingCatalgoueFilteringDataGrid"
              Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3" Margin="10"  MinWidth="400" 
              ItemsSource="{Binding CodedCatalogueList, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnTargetUpdated=True}" 
              SelectionMode="Extended"
              ToolTip="{Binding SelectedItem.Synonym, RelativeSource={RelativeSource Self}}"   
              RowDetailsTemplate="{StaticResource CodingCatalogueRowDetailsTemplate}"
              RowHeaderWidth="0"
              EnableColumnVirtualization="True" 
              EnableRowVirtualization="True" 
              VirtualizingPanel.IsVirtualizingWhenGrouping="True"
        >
        <DataGrid.Columns>
            <DataGridTextColumn x:Name="SynonymColumn"
                                Binding="{Binding Synonym}" 
                                Header="offene Angabe" 
                                MinWidth="120"
                                Width="*" 
                                >
            </DataGridTextColumn>
        </DataGrid.Columns>
        <!--  Style for groups at top level.  -->
        <DataGrid.GroupStyle>
            <GroupStyle HidesIfEmpty="True" >
                <GroupStyle.ContainerStyle>
                    <Style TargetType="{x:Type GroupItem}">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate>
                                    <Expander BorderBrush="DarkBlue">
                                        <Expander.Header>
                                            <StackPanel Orientation="Horizontal">
                                                <TextBlock Text="{Binding Path=Items[0].SchemeLabel}" />
                                                <TextBlock Text=" Count: " FontWeight="Normal"/>
                                                <TextBlock Text="{Binding Path=Items.Count}" FontWeight="Normal" />
                                            </StackPanel>
                                        </Expander.Header>
                                        <ItemsPresenter />
                                    </Expander>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding ElementName=CheckBoxGrouping, Path=IsChecked}" Value="False">
                                <Setter Property="Visibility" Value="Collapsed"></Setter>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </GroupStyle.ContainerStyle>
            </GroupStyle>
        </DataGrid.GroupStyle>
    </DataGrid>

Большое спасибо за вашу помощь!

...