Я создал сетку данных со стилем группы в своем приложении 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>
Большое спасибо за вашу помощь!