【问题标题】:WPF ListView SelectedValue not being setWPF ListView SelectedValue 未设置
【发布时间】:2010-10-06 23:39:57
【问题描述】:

我查看了一些解决方案,但还没有对我有用。

我正在为这个项目使用 MVVM,并且有一个无法设置 SelectedItem 属性的 ListView。

如果这是我的(简化的)XAML。

<ListView Name="uxPackageGroups" ItemsSource="{Binding Path=PackageGroups, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" BorderThickness="0"
      BorderBrush="#FF0000E8" ScrollViewer.CanContentScroll="True"
      SelectedItem="{Binding Path=PackageGroupSelectedItem, Mode=TwoWay}" >
<ListView.ItemTemplate>
    <DataTemplate>
       <Label Content="{Binding Name}" Height="20" Margin="0" Padding="0"/>
    </DataTemplate>
</ListView.ItemTemplate>

我将它绑定到我的 ViewModel 中的 PackageGroups

   public PackageGroup PackageGroupSelectedItem {get; set; }
   public ObservableCollection<PackageGroup> PackageGroups {get; set; }

   private void LoadUI()
   {
        PackageGroups = Factory.LoadAllPackageGroups())

        // if I try to hard-code a pre-selected item here it doesn't work.
        // 34 is a valid ID and I see a valid object when stepping through the code

        PackageGroupSelectedItem = PackageGroup.LoadByID(db, 34);
   }

我的代码中有什么明显的地方吗?

谢谢。

【问题讨论】:

    标签: wpf listview mvvm selectedvalue


    【解决方案1】:

    一个可能的问题是您没有在 PackageGroupSelectedItem 属性中实现INotifyPropertyChanged

    【讨论】:

      【解决方案2】:

      我刚遇到同样的情况,结果发现我的收藏项错误地实现了“Equals”方法。它不需要在集合项上实现 INotifyPropertyChanged,但应该正确实现 Equals...

      【讨论】:

        猜你喜欢
        • 2014-06-04
        • 2018-01-09
        • 1970-01-01
        • 2023-04-01
        • 2011-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多