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

考えられる問題の 1 つは、PackageGroupSelectedItem プロパティにINotifyPropertyChangedを実装していないことです。

于 2010-10-07T00:04:24.353 に答える
0

私は同じ状況に陥ったばかりで、コレクション アイテムが「Equals」メソッドを正しく実装していないことが判明しました。コレクション項目に INotifyPropertyChanged を実装する必要はありませんが、Equals は正しく実装する必要があります...

于 2011-09-07T09:51:30.710 に答える