2

ListViewxaml に があり、ItemsSource であり、SelectedItem プロパティが ViewModel にバインドされています。

Xaml

<ListView ItemsSource="{Binding SitesCollection}" SelectedItem="{Binding SelectedSite, Mode=TwoWay}">
    <ListView.ItemTemplate>
        <DataTemplate>
              <TextBlock Text="{Binding url}"></TextBlock>
         </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

ビューモデル

public ObservableCollection<AWRestrictedSite> _SitesCollection;
public ObservableCollection<AWRestrictedSite> SitesCollection
{
     get
     {
          //populate collection
          return _SitesCollection;
     }
}

public AWRestrictedSite _SelectedSite;
public AWRestrictedSite SelectedSite
{
      get
      {
          return _SelectedSite;
      }
      set
      {
          _SelectedSite = value;
          //do some stuff
      }
 }

ページが読み込まれると、何らかの理由で ListView の最初の項目が選択されます。ページが読み込まれると、次のようになります。

  1. Get inside SitesCollection が呼び出されています (リストビューにデータが入力され、コレクションが返されます)。
  2. Get inside SelectedSite が呼び出され、null が返されます
  3. Set inside SelectedSite が呼び出され、値が最初の項目に設定されます

なぜこれが起こっているのか誰にも分かりますか?

4

2 に答える 2

0

これは通常、 a の を に設定したときに発生SelectedItemListViewます。ItemsSourceCollection.FirstOrDefault()

于 2015-12-22T12:14:23.347 に答える