Wpf 找不到引用绑定的源。。。数据绑定列表视图问题

Wpf 找不到引用绑定的源。。。数据绑定列表视图问题,wpf,xaml,data-binding,listview,binding,Wpf,Xaml,Data Binding,Listview,Binding,我知道有一些关于这个错误的问题,我已经找到了一些并阅读了它们,但是说实话,我什么都不懂 <ListView.Resources> <Style TargetType="ListViewItem"> <Setter Property="HorizontalContentAlignment" Value=

我知道有一些关于这个错误的问题,我已经找到了一些并阅读了它们,但是说实话,我什么都不懂

                        <ListView.Resources>
                            <Style TargetType="ListViewItem">
                                <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                                <Setter Property="VerticalContentAlignment" Value="Stretch" />
                                <EventSetter Event="Selected" Handler="lvItemSelected" />
                            </Style>
                            <Style x:Key="GrayOutMappedColumn" TargetType="{x:Type TextBlock}">
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding Mapped}" Value="False">
                                        <Setter Property="TextElement.Foreground" Value="Black" />
                                    </DataTrigger>
                                </Style.Triggers>
                                <Setter Property="TextElement.Foreground" Value="DarkGray" />
                            </Style>
                        </ListView.Resources>
                        <ListView.GroupStyle>
                            <GroupStyle>
                                <GroupStyle.HeaderTemplate>
                                    <DataTemplate>
                                        <Border BorderBrush="LightGray" BorderThickness="0,0,0,1">
                                            <TextBlock FontSize="12" FontWeight="Bold" Margin="0,10" Text="{Binding Name}" />
                                        </Border>
                                    </DataTemplate>
                                </GroupStyle.HeaderTemplate>
                            </GroupStyle>
                        </ListView.GroupStyle>
                        <ListView.ItemsPanel>
                            <ItemsPanelTemplate>
                                <UniformGrid Columns="4" />
                            </ItemsPanelTemplate>
                        </ListView.ItemsPanel>
                        <ListView.ItemTemplate>
                            <DataTemplate>
                                <StackPanel ClipToBounds="False" HorizontalAlignment="Stretch" Width="Auto">
                                    <TextBlock HorizontalAlignment="Stretch" Style="{StaticResource GrayOutMappedColumn}" Text="{Binding Path=FriendlyName}" Width="Auto" />
                                </StackPanel>
                            </DataTemplate>
                        </ListView.ItemTemplate>
我有一个WPF窗口,其中有两个数据绑定的列表视图。一个绑定到业务对象(我的自定义类),另一个绑定到
字典
。运行时看起来一切正常,但在输出窗口中出现错误:

                        <ListView.Resources>
                            <Style TargetType="ListViewItem">
                                <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                                <Setter Property="VerticalContentAlignment" Value="Stretch" />
                                <EventSetter Event="Selected" Handler="lvItemSelected" />
                            </Style>
                            <Style x:Key="GrayOutMappedColumn" TargetType="{x:Type TextBlock}">
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding Mapped}" Value="False">
                                        <Setter Property="TextElement.Foreground" Value="Black" />
                                    </DataTrigger>
                                </Style.Triggers>
                                <Setter Property="TextElement.Foreground" Value="DarkGray" />
                            </Style>
                        </ListView.Resources>
                        <ListView.GroupStyle>
                            <GroupStyle>
                                <GroupStyle.HeaderTemplate>
                                    <DataTemplate>
                                        <Border BorderBrush="LightGray" BorderThickness="0,0,0,1">
                                            <TextBlock FontSize="12" FontWeight="Bold" Margin="0,10" Text="{Binding Name}" />
                                        </Border>
                                    </DataTemplate>
                                </GroupStyle.HeaderTemplate>
                            </GroupStyle>
                        </ListView.GroupStyle>
                        <ListView.ItemsPanel>
                            <ItemsPanelTemplate>
                                <UniformGrid Columns="4" />
                            </ItemsPanelTemplate>
                        </ListView.ItemsPanel>
                        <ListView.ItemTemplate>
                            <DataTemplate>
                                <StackPanel ClipToBounds="False" HorizontalAlignment="Stretch" Width="Auto">
                                    <TextBlock HorizontalAlignment="Stretch" Style="{StaticResource GrayOutMappedColumn}" Text="{Binding Path=FriendlyName}" Width="Auto" />
                                </StackPanel>
                            </DataTemplate>
                        </ListView.ItemTemplate>
System.Windows.Data错误:4:找不到引用为“RelativeSource FindAncestor,AncestorType='System.Windows.Controls.ItemsControl',AncestorLevel='1'的绑定源。BindingExpression:Path=HorizontalContentAlignment;DataItem=null;目标元素是“ListViewItem”(名称=“”);目标属性为“HorizontalContentAlignment”(类型为“HorizontalAlignment”)

                        <ListView.Resources>
                            <Style TargetType="ListViewItem">
                                <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                                <Setter Property="VerticalContentAlignment" Value="Stretch" />
                                <EventSetter Event="Selected" Handler="lvItemSelected" />
                            </Style>
                            <Style x:Key="GrayOutMappedColumn" TargetType="{x:Type TextBlock}">
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding Mapped}" Value="False">
                                        <Setter Property="TextElement.Foreground" Value="Black" />
                                    </DataTrigger>
                                </Style.Triggers>
                                <Setter Property="TextElement.Foreground" Value="DarkGray" />
                            </Style>
                        </ListView.Resources>
                        <ListView.GroupStyle>
                            <GroupStyle>
                                <GroupStyle.HeaderTemplate>
                                    <DataTemplate>
                                        <Border BorderBrush="LightGray" BorderThickness="0,0,0,1">
                                            <TextBlock FontSize="12" FontWeight="Bold" Margin="0,10" Text="{Binding Name}" />
                                        </Border>
                                    </DataTemplate>
                                </GroupStyle.HeaderTemplate>
                            </GroupStyle>
                        </ListView.GroupStyle>
                        <ListView.ItemsPanel>
                            <ItemsPanelTemplate>
                                <UniformGrid Columns="4" />
                            </ItemsPanelTemplate>
                        </ListView.ItemsPanel>
                        <ListView.ItemTemplate>
                            <DataTemplate>
                                <StackPanel ClipToBounds="False" HorizontalAlignment="Stretch" Width="Auto">
                                    <TextBlock HorizontalAlignment="Stretch" Style="{StaticResource GrayOutMappedColumn}" Text="{Binding Path=FriendlyName}" Width="Auto" />
                                </StackPanel>
                            </DataTemplate>
                        </ListView.ItemTemplate>
对于垂直内容对齐也是如此

                        <ListView.Resources>
                            <Style TargetType="ListViewItem">
                                <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                                <Setter Property="VerticalContentAlignment" Value="Stretch" />
                                <EventSetter Event="Selected" Handler="lvItemSelected" />
                            </Style>
                            <Style x:Key="GrayOutMappedColumn" TargetType="{x:Type TextBlock}">
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding Mapped}" Value="False">
                                        <Setter Property="TextElement.Foreground" Value="Black" />
                                    </DataTrigger>
                                </Style.Triggers>
                                <Setter Property="TextElement.Foreground" Value="DarkGray" />
                            </Style>
                        </ListView.Resources>
                        <ListView.GroupStyle>
                            <GroupStyle>
                                <GroupStyle.HeaderTemplate>
                                    <DataTemplate>
                                        <Border BorderBrush="LightGray" BorderThickness="0,0,0,1">
                                            <TextBlock FontSize="12" FontWeight="Bold" Margin="0,10" Text="{Binding Name}" />
                                        </Border>
                                    </DataTemplate>
                                </GroupStyle.HeaderTemplate>
                            </GroupStyle>
                        </ListView.GroupStyle>
                        <ListView.ItemsPanel>
                            <ItemsPanelTemplate>
                                <UniformGrid Columns="4" />
                            </ItemsPanelTemplate>
                        </ListView.ItemsPanel>
                        <ListView.ItemTemplate>
                            <DataTemplate>
                                <StackPanel ClipToBounds="False" HorizontalAlignment="Stretch" Width="Auto">
                                    <TextBlock HorizontalAlignment="Stretch" Style="{StaticResource GrayOutMappedColumn}" Text="{Binding Path=FriendlyName}" Width="Auto" />
                                </StackPanel>
                            </DataTemplate>
                        </ListView.ItemTemplate>
即使bost ListView按预期填充了项目,但实际上在加载窗口时会导致明显的延迟

                        <ListView.Resources>
                            <Style TargetType="ListViewItem">
                                <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                                <Setter Property="VerticalContentAlignment" Value="Stretch" />
                                <EventSetter Event="Selected" Handler="lvItemSelected" />
                            </Style>
                            <Style x:Key="GrayOutMappedColumn" TargetType="{x:Type TextBlock}">
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding Mapped}" Value="False">
                                        <Setter Property="TextElement.Foreground" Value="Black" />
                                    </DataTrigger>
                                </Style.Triggers>
                                <Setter Property="TextElement.Foreground" Value="DarkGray" />
                            </Style>
                        </ListView.Resources>
                        <ListView.GroupStyle>
                            <GroupStyle>
                                <GroupStyle.HeaderTemplate>
                                    <DataTemplate>
                                        <Border BorderBrush="LightGray" BorderThickness="0,0,0,1">
                                            <TextBlock FontSize="12" FontWeight="Bold" Margin="0,10" Text="{Binding Name}" />
                                        </Border>
                                    </DataTemplate>
                                </GroupStyle.HeaderTemplate>
                            </GroupStyle>
                        </ListView.GroupStyle>
                        <ListView.ItemsPanel>
                            <ItemsPanelTemplate>
                                <UniformGrid Columns="4" />
                            </ItemsPanelTemplate>
                        </ListView.ItemsPanel>
                        <ListView.ItemTemplate>
                            <DataTemplate>
                                <StackPanel ClipToBounds="False" HorizontalAlignment="Stretch" Width="Auto">
                                    <TextBlock HorizontalAlignment="Stretch" Style="{StaticResource GrayOutMappedColumn}" Text="{Binding Path=FriendlyName}" Width="Auto" />
                                </StackPanel>
                            </DataTemplate>
                        </ListView.ItemTemplate>
为了寻找答案,我找到了这个线程,并实现了建议的解决方案,在两个列表视图中提供了
HorizontalContentAlignment
VerticalContentAlignment
的默认值。这没用

                        <ListView.Resources>
                            <Style TargetType="ListViewItem">
                                <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                                <Setter Property="VerticalContentAlignment" Value="Stretch" />
                                <EventSetter Event="Selected" Handler="lvItemSelected" />
                            </Style>
                            <Style x:Key="GrayOutMappedColumn" TargetType="{x:Type TextBlock}">
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding Mapped}" Value="False">
                                        <Setter Property="TextElement.Foreground" Value="Black" />
                                    </DataTrigger>
                                </Style.Triggers>
                                <Setter Property="TextElement.Foreground" Value="DarkGray" />
                            </Style>
                        </ListView.Resources>
                        <ListView.GroupStyle>
                            <GroupStyle>
                                <GroupStyle.HeaderTemplate>
                                    <DataTemplate>
                                        <Border BorderBrush="LightGray" BorderThickness="0,0,0,1">
                                            <TextBlock FontSize="12" FontWeight="Bold" Margin="0,10" Text="{Binding Name}" />
                                        </Border>
                                    </DataTemplate>
                                </GroupStyle.HeaderTemplate>
                            </GroupStyle>
                        </ListView.GroupStyle>
                        <ListView.ItemsPanel>
                            <ItemsPanelTemplate>
                                <UniformGrid Columns="4" />
                            </ItemsPanelTemplate>
                        </ListView.ItemsPanel>
                        <ListView.ItemTemplate>
                            <DataTemplate>
                                <StackPanel ClipToBounds="False" HorizontalAlignment="Stretch" Width="Auto">
                                    <TextBlock HorizontalAlignment="Stretch" Style="{StaticResource GrayOutMappedColumn}" Text="{Binding Path=FriendlyName}" Width="Auto" />
                                </StackPanel>
                            </DataTemplate>
                        </ListView.ItemTemplate>
以下是XAML:

                        <ListView.Resources>
                            <Style TargetType="ListViewItem">
                                <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                                <Setter Property="VerticalContentAlignment" Value="Stretch" />
                                <EventSetter Event="Selected" Handler="lvItemSelected" />
                            </Style>
                            <Style x:Key="GrayOutMappedColumn" TargetType="{x:Type TextBlock}">
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding Mapped}" Value="False">
                                        <Setter Property="TextElement.Foreground" Value="Black" />
                                    </DataTrigger>
                                </Style.Triggers>
                                <Setter Property="TextElement.Foreground" Value="DarkGray" />
                            </Style>
                        </ListView.Resources>
                        <ListView.GroupStyle>
                            <GroupStyle>
                                <GroupStyle.HeaderTemplate>
                                    <DataTemplate>
                                        <Border BorderBrush="LightGray" BorderThickness="0,0,0,1">
                                            <TextBlock FontSize="12" FontWeight="Bold" Margin="0,10" Text="{Binding Name}" />
                                        </Border>
                                    </DataTemplate>
                                </GroupStyle.HeaderTemplate>
                            </GroupStyle>
                        </ListView.GroupStyle>
                        <ListView.ItemsPanel>
                            <ItemsPanelTemplate>
                                <UniformGrid Columns="4" />
                            </ItemsPanelTemplate>
                        </ListView.ItemsPanel>
                        <ListView.ItemTemplate>
                            <DataTemplate>
                                <StackPanel ClipToBounds="False" HorizontalAlignment="Stretch" Width="Auto">
                                    <TextBlock HorizontalAlignment="Stretch" Style="{StaticResource GrayOutMappedColumn}" Text="{Binding Path=FriendlyName}" Width="Auto" />
                                </StackPanel>
                            </DataTemplate>
                        </ListView.ItemTemplate>
  • 列表视图1:

                    <ListView Margin="15,50,15,15" Name="lvLanguageCodes" FontSize="13" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
                        <ListView.Resources>
                            <Style TargetType="ListViewItem">
                                <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                                <Setter Property="VerticalContentAlignment" Value="Stretch" />
                            </Style>
                        </ListView.Resources>
                        <ListView.ItemsPanel>
                            <ItemsPanelTemplate>
                                <UniformGrid Columns="3" />
                            </ItemsPanelTemplate>
                        </ListView>
    
                            <ListView.Resources>
                                <Style TargetType="ListViewItem">
                                    <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                                    <Setter Property="VerticalContentAlignment" Value="Stretch" />
                                    <EventSetter Event="Selected" Handler="lvItemSelected" />
                                </Style>
                                <Style x:Key="GrayOutMappedColumn" TargetType="{x:Type TextBlock}">
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding Mapped}" Value="False">
                                            <Setter Property="TextElement.Foreground" Value="Black" />
                                        </DataTrigger>
                                    </Style.Triggers>
                                    <Setter Property="TextElement.Foreground" Value="DarkGray" />
                                </Style>
                            </ListView.Resources>
                            <ListView.GroupStyle>
                                <GroupStyle>
                                    <GroupStyle.HeaderTemplate>
                                        <DataTemplate>
                                            <Border BorderBrush="LightGray" BorderThickness="0,0,0,1">
                                                <TextBlock FontSize="12" FontWeight="Bold" Margin="0,10" Text="{Binding Name}" />
                                            </Border>
                                        </DataTemplate>
                                    </GroupStyle.HeaderTemplate>
                                </GroupStyle>
                            </ListView.GroupStyle>
                            <ListView.ItemsPanel>
                                <ItemsPanelTemplate>
                                    <UniformGrid Columns="4" />
                                </ItemsPanelTemplate>
                            </ListView.ItemsPanel>
                            <ListView.ItemTemplate>
                                <DataTemplate>
                                    <StackPanel ClipToBounds="False" HorizontalAlignment="Stretch" Width="Auto">
                                        <TextBlock HorizontalAlignment="Stretch" Style="{StaticResource GrayOutMappedColumn}" Text="{Binding Path=FriendlyName}" Width="Auto" />
                                    </StackPanel>
                                </DataTemplate>
                            </ListView.ItemTemplate>
    
    2:

                            <ListView.Resources>
                                <Style TargetType="ListViewItem">
                                    <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                                    <Setter Property="VerticalContentAlignment" Value="Stretch" />
                                    <EventSetter Event="Selected" Handler="lvItemSelected" />
                                </Style>
                                <Style x:Key="GrayOutMappedColumn" TargetType="{x:Type TextBlock}">
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding Mapped}" Value="False">
                                            <Setter Property="TextElement.Foreground" Value="Black" />
                                        </DataTrigger>
                                    </Style.Triggers>
                                    <Setter Property="TextElement.Foreground" Value="DarkGray" />
                                </Style>
                            </ListView.Resources>
                            <ListView.GroupStyle>
                                <GroupStyle>
                                    <GroupStyle.HeaderTemplate>
                                        <DataTemplate>
                                            <Border BorderBrush="LightGray" BorderThickness="0,0,0,1">
                                                <TextBlock FontSize="12" FontWeight="Bold" Margin="0,10" Text="{Binding Name}" />
                                            </Border>
                                        </DataTemplate>
                                    </GroupStyle.HeaderTemplate>
                                </GroupStyle>
                            </ListView.GroupStyle>
                            <ListView.ItemsPanel>
                                <ItemsPanelTemplate>
                                    <UniformGrid Columns="4" />
                                </ItemsPanelTemplate>
                            </ListView.ItemsPanel>
                            <ListView.ItemTemplate>
                                <DataTemplate>
                                    <StackPanel ClipToBounds="False" HorizontalAlignment="Stretch" Width="Auto">
                                        <TextBlock HorizontalAlignment="Stretch" Style="{StaticResource GrayOutMappedColumn}" Text="{Binding Path=FriendlyName}" Width="Auto" />
                                    </StackPanel>
                                </DataTemplate>
                            </ListView.ItemTemplate>
    
    其中,
    datatypes
    observateCollection
    ,其中
    Gate
    是我的业务类(实现
    inotifPropertyChanged
    IComparable
    ,除此之外没有什么特别之处)

                            <ListView.Resources>
                                <Style TargetType="ListViewItem">
                                    <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                                    <Setter Property="VerticalContentAlignment" Value="Stretch" />
                                    <EventSetter Event="Selected" Handler="lvItemSelected" />
                                </Style>
                                <Style x:Key="GrayOutMappedColumn" TargetType="{x:Type TextBlock}">
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding Mapped}" Value="False">
                                            <Setter Property="TextElement.Foreground" Value="Black" />
                                        </DataTrigger>
                                    </Style.Triggers>
                                    <Setter Property="TextElement.Foreground" Value="DarkGray" />
                                </Style>
                            </ListView.Resources>
                            <ListView.GroupStyle>
                                <GroupStyle>
                                    <GroupStyle.HeaderTemplate>
                                        <DataTemplate>
                                            <Border BorderBrush="LightGray" BorderThickness="0,0,0,1">
                                                <TextBlock FontSize="12" FontWeight="Bold" Margin="0,10" Text="{Binding Name}" />
                                            </Border>
                                        </DataTemplate>
                                    </GroupStyle.HeaderTemplate>
                                </GroupStyle>
                            </ListView.GroupStyle>
                            <ListView.ItemsPanel>
                                <ItemsPanelTemplate>
                                    <UniformGrid Columns="4" />
                                </ItemsPanelTemplate>
                            </ListView.ItemsPanel>
                            <ListView.ItemTemplate>
                                <DataTemplate>
                                    <StackPanel ClipToBounds="False" HorizontalAlignment="Stretch" Width="Auto">
                                        <TextBlock HorizontalAlignment="Stretch" Style="{StaticResource GrayOutMappedColumn}" Text="{Binding Path=FriendlyName}" Width="Auto" />
                                    </StackPanel>
                                </DataTemplate>
                            </ListView.ItemTemplate>
    

    为什么我会出错?如果我显式地设置了这些对齐属性的值,为什么要将它们绑定到任何东西上呢?

    请尝试下面的内容。不确定它是否能在您的环境中工作,但这是对我有效的语法

                            <ListView.Resources>
                                <Style TargetType="ListViewItem">
                                    <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                                    <Setter Property="VerticalContentAlignment" Value="Stretch" />
                                    <EventSetter Event="Selected" Handler="lvItemSelected" />
                                </Style>
                                <Style x:Key="GrayOutMappedColumn" TargetType="{x:Type TextBlock}">
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding Mapped}" Value="False">
                                            <Setter Property="TextElement.Foreground" Value="Black" />
                                        </DataTrigger>
                                    </Style.Triggers>
                                    <Setter Property="TextElement.Foreground" Value="DarkGray" />
                                </Style>
                            </ListView.Resources>
                            <ListView.GroupStyle>
                                <GroupStyle>
                                    <GroupStyle.HeaderTemplate>
                                        <DataTemplate>
                                            <Border BorderBrush="LightGray" BorderThickness="0,0,0,1">
                                                <TextBlock FontSize="12" FontWeight="Bold" Margin="0,10" Text="{Binding Name}" />
                                            </Border>
                                        </DataTemplate>
                                    </GroupStyle.HeaderTemplate>
                                </GroupStyle>
                            </ListView.GroupStyle>
                            <ListView.ItemsPanel>
                                <ItemsPanelTemplate>
                                    <UniformGrid Columns="4" />
                                </ItemsPanelTemplate>
                            </ListView.ItemsPanel>
                            <ListView.ItemTemplate>
                                <DataTemplate>
                                    <StackPanel ClipToBounds="False" HorizontalAlignment="Stretch" Width="Auto">
                                        <TextBlock HorizontalAlignment="Stretch" Style="{StaticResource GrayOutMappedColumn}" Text="{Binding Path=FriendlyName}" Width="Auto" />
                                    </StackPanel>
                                </DataTemplate>
                            </ListView.ItemTemplate>
    
        <ListView.Resources>
                <Style TargetType="{x:Type ListViewItem}">
                    <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
                    <Setter Property="VerticalContentAlignment" Value="Stretch" />
                </Style>
    
    
    
    这可能是一个数据绑定问题。你能试试吗

                            <ListView.Resources>
                                <Style TargetType="ListViewItem">
                                    <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                                    <Setter Property="VerticalContentAlignment" Value="Stretch" />
                                    <EventSetter Event="Selected" Handler="lvItemSelected" />
                                </Style>
                                <Style x:Key="GrayOutMappedColumn" TargetType="{x:Type TextBlock}">
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding Mapped}" Value="False">
                                            <Setter Property="TextElement.Foreground" Value="Black" />
                                        </DataTrigger>
                                    </Style.Triggers>
                                    <Setter Property="TextElement.Foreground" Value="DarkGray" />
                                </Style>
                            </ListView.Resources>
                            <ListView.GroupStyle>
                                <GroupStyle>
                                    <GroupStyle.HeaderTemplate>
                                        <DataTemplate>
                                            <Border BorderBrush="LightGray" BorderThickness="0,0,0,1">
                                                <TextBlock FontSize="12" FontWeight="Bold" Margin="0,10" Text="{Binding Name}" />
                                            </Border>
                                        </DataTemplate>
                                    </GroupStyle.HeaderTemplate>
                                </GroupStyle>
                            </ListView.GroupStyle>
                            <ListView.ItemsPanel>
                                <ItemsPanelTemplate>
                                    <UniformGrid Columns="4" />
                                </ItemsPanelTemplate>
                            </ListView.ItemsPanel>
                            <ListView.ItemTemplate>
                                <DataTemplate>
                                    <StackPanel ClipToBounds="False" HorizontalAlignment="Stretch" Width="Auto">
                                        <TextBlock HorizontalAlignment="Stretch" Style="{StaticResource GrayOutMappedColumn}" Text="{Binding Path=FriendlyName}" Width="Auto" />
                                    </StackPanel>
                                </DataTemplate>
                            </ListView.ItemTemplate>
    
        <ListView Margin="15,50,15,15" Name="lvLanguageCodes" FontSize="1" 
                  PresentationTraceSources.TraceLevel="High" 
                  DisplayMemberPath="Value" SelectedValuePath="Key" ItemsSource="Langages">
            <ListView.Resources>
                <Style TargetType="ListViewItem">
                    <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                    <Setter Property="VerticalContentAlignment" Value="Stretch" />
                </Style>
            </ListView.Resources>
        </ListView>
    
    
    

    您知道ListView.ItemsPanel没有关闭。我很惊讶这会编译。

    您需要覆盖默认的
    ItemContainerStyle
    。因此,布拉姆的答案有一半是正确的。这是我的:

                            <ListView.Resources>
                                <Style TargetType="ListViewItem">
                                    <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                                    <Setter Property="VerticalContentAlignment" Value="Stretch" />
                                    <EventSetter Event="Selected" Handler="lvItemSelected" />
                                </Style>
                                <Style x:Key="GrayOutMappedColumn" TargetType="{x:Type TextBlock}">
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding Mapped}" Value="False">
                                            <Setter Property="TextElement.Foreground" Value="Black" />
                                        </DataTrigger>
                                    </Style.Triggers>
                                    <Setter Property="TextElement.Foreground" Value="DarkGray" />
                                </Style>
                            </ListView.Resources>
                            <ListView.GroupStyle>
                                <GroupStyle>
                                    <GroupStyle.HeaderTemplate>
                                        <DataTemplate>
                                            <Border BorderBrush="LightGray" BorderThickness="0,0,0,1">
                                                <TextBlock FontSize="12" FontWeight="Bold" Margin="0,10" Text="{Binding Name}" />
                                            </Border>
                                        </DataTemplate>
                                    </GroupStyle.HeaderTemplate>
                                </GroupStyle>
                            </ListView.GroupStyle>
                            <ListView.ItemsPanel>
                                <ItemsPanelTemplate>
                                    <UniformGrid Columns="4" />
                                </ItemsPanelTemplate>
                            </ListView.ItemsPanel>
                            <ListView.ItemTemplate>
                                <DataTemplate>
                                    <StackPanel ClipToBounds="False" HorizontalAlignment="Stretch" Width="Auto">
                                        <TextBlock HorizontalAlignment="Stretch" Style="{StaticResource GrayOutMappedColumn}" Text="{Binding Path=FriendlyName}" Width="Auto" />
                                    </StackPanel>
                                </DataTemplate>
                            </ListView.ItemTemplate>
    
    <Style x:Key="ListBoxItemStyle" TargetType="ListBoxItem">
        <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
        <Setter Property="OverridesDefaultStyle" Value="True"/>
        <Setter Property="SnapsToDevicePixels" Value="True"/>
        <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
        <Setter Property="VerticalContentAlignment" Value="Stretch"/>
        <Setter Property="Template">
            <Setter.Value>
        ...
    </Style>
    
    <ListBox ItemContainerStyle="{StaticResource ListBoxItemStyle}"
    
    
    ...
    
    为什么要使用样式设置ListView的某些属性?作为共享资源或类似资源,这将是有用的。直接在ListView元素上声明它们。我在任何XAML中都没有看到
    RelativeSource
    绑定。你能贴出来吗?这就是我要找的,但是根本没有!XAML甚至根本不包含字符串“relat”(不区分大小写),您是否解决了问题?我现在也在为同样的事情挣扎,没有luck@XMight对不起,那是两年多前的事了(还有很多其他问题):)我简直记不起来了。好luckI,你说得对(已经有一段时间了,我不再使用该应用程序了,所以我无法验证),但我仍然想了解原因。为什么必须重写
    ItemContainerStyle
    ?那么,
    ListViewItem
    的作用是什么?当您为ListViewItem内联一个样式时,您并没有覆盖整个默认样式。我的假设是,在默认样式的某个地方,VerticalContentAlignment有一个相对资源绑定(请参见此处的默认样式示例:)。感谢您的解释。天哪,我真的不会把WPF评为程序员友好型:)在不完全了解WPF的情况下,究竟有谁会得出这样的结论:这就是原始错误消息的含义!答案被接受是的,WPF的学习曲线是荒谬的。它真的很深。我也有和OP一样的问题。在实现分组后,它开始显示在我的调试窗口中。OverridesDefaultStyle解决了这个问题