У меня есть приложение в WPF без MVVM, я решил реорганизовать это на MVVM. Я столкнулся с проблемой с событием ComboBox SelectionChanged. В основном, чтобы упростить это, предположим, что у меня есть один ComboBox и 2 ListView. Каждый ComboBoxItem является коллекцией. Первый элемент ListView ListSource привязан к коллекции из ComboBox.SelectedValue, но только к той части, чье одно свойство (десятичной) больше нуля. Второй элемент ListView ListSource привязан к одному и тому же кругу, но ко второй части (некоторая поддержка больше нуля). Ниже приведен код кодаComboBox SelectionChanged в MVVM
private void myCombo_selectionChanged(object sender, SelectionChangedEventArgs e)
{
ComboBox myCmb = sender as ComboBox;
List<myType> myList = myCmb.SelectedValue as List<myType>;
itemsForListView1 = myList.Where((x) => x.myProp > 0);
itemsForListView2 = myList.Where((x) => x.myProp < 0);
// Above 2 collections are of Type List<myType> and their scope will be whole ViewModel,
//so i assume i just need to change them and RaisePropChanged but how to change them without breaking mvvm ?
MyListView1.ItemsSource = itemsForListView1;
MyListView2.ItemsSource = itemsForListView2;
}
Как я могу достичь чего-то подобного в MVVM?
Сделайте этот метод событий Свойством, которое может поднять его самостоятельно и использовать дополнительные свойства для привязки к списку. – JSJ
Я действительно новичок в MVVM, поэтому я буду оценивать некоторые примеры с последующим описанием – MajkeloDev