2

我已经查看了一些解决方案,但对我来说还没有任何效果。

我正在为这个项目使用 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);
   }

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

谢谢。

4

2 回答 2

1

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

于 2010-10-07T00:04:24.353 回答
0

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

于 2011-09-07T09:51:30.710 回答