gpt4 book ai didi

wpf - 找不到与引用绑定(bind)的源... databound ListView 问题

转载 作者:行者123 更新时间:2023-12-03 18:27:15 27 4
gpt4 key购买 nike

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

我有一个带有两个数据绑定(bind) ListView 的 WPF 窗口。一个绑定(bind)到业务对象(我的自定义类),另一个绑定(bind)到 Dictionary<string, string> .在运行时一切似乎都正常,但在输出窗口中出现错误:
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.ItemsControl', AncestorLevel='1''. BindingExpression:Path=HorizontalContentAlignment; DataItem=null; target element is 'ListViewItem' (Name=''); target property is 'HorizontalContentAlignment' (type 'HorizontalAlignment')VerticalContentAlignment 也是如此.

即使 bost ListViews 填充了预期的项目,它实际上在加载窗口时会导致明显的延迟。

寻找答案,我找到了这个帖子 http://social.msdn.microsoft.com/Forums/en/wpf/thread/f3549b2b-5342-41a1-af04-d55e43c48768 - 我实现了建议的解决方案,提供了两个 HorizontalContentAlignment 的默认值和 VerticalContentAlignment在两个 ListView 中。它没有帮助。

这是 XAML:

  • ListView 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 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>

  • 数据绑定(bind)代码:
    lvLanguageCodes.ItemsSource = languages;
    lvLanguageCodes.SelectedValuePath = "Key";
    lvLanguageCodes.DisplayMemberPath = "Value";

    2:
    lvDataTypes.ItemsSource = AssignDataType.datatypes;

    在哪里 datatypesObservableCollection<Gate> , 其中 Gate是我的商务舱(实现 INotifyPropertyChangedIComparable 并没有什么特别之处)。

    为什么我会收到错误消息?如果我明确设置它们的值,为什么它试图将这些对齐属性绑定(bind)到任何东西?

    最佳答案

    您需要覆盖默认 ItemContainerStyle .所以 Blam 的回答是正确的。这是我的:

    <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}"

    关于wpf - 找不到与引用绑定(bind)的源... databound ListView 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6959274/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com