2

私はasListViewを実装するを持っています.GridViewViewExpanderComboBox

ItemsSourceof myはof にListViewバインドされていますObservableCollection:

public class data
{
   public string Name { get; set; }
   public int Age { get; set; }
   public bool Graduate { get; set; }
   public eMusic Music { get; set; }
}

public enum eMusic
{
    Rock,
    Pop,
    Classic
}

プロパティの値Musicは で示されますComboBox

ここに画像の説明を入力

問題は次のとおりです。ComboBox の値を変更すると (たとえば、Pop -> Rock)、関連する項目が対応するグループに移動しません。なんで?どうすればこの問題を解決できますか?

編集:

MainWindow.xaml
MainWindow.xaml.cs

4

2 に答える 2

2

を編集するときは、ComboBox私の を更新する必要がItemsSourceありますListView:

ICollectionView view = CollectionViewSource.GetDefaultView(MyListView.ItemsSource);
view.Refresh();
于 2012-09-17T09:40:30.383 に答える
0

IsSynchronizedWithCurrentItem="True"コンボボックスの xaml 属性に追加

このようにビューモデルにプロパティを書きます

    private ICollectionView _musicsView;
    public ObservableCollection<Music> Musics{ get; private set; }

    public YourViewModel()
    { 
       Musics= new ObservableCollection<Music>();
       _music= CollectionViewSource.GetDefaultView(AvaibleLanguages);
       _music.CurrentChanged += new EventHandler(OnCurrentChanged);
    }

    public ICollectionView MusicsView
    {
       get
       {
          return _musicsView;
       } 
    }

    void OnCurrentChanged(object sender, EventArgs e)
    {
        YourObject current = _musicsView.CurrentItem as YourItem;
//do: what you want
    }
于 2012-09-16T17:47:31.873 に答える