WPF ListView SelectedValue未设置

时间:2010-10-06 23:39:57

标签: wpf listview mvvm selectedvalue

我看了几个解决方案,但对我来说还没有任何效果。

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

如果这是我的(简化)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);
   }

我的代码中有什么明显的东西?

感谢。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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