Ваш код очень запутан, и я думаю, что вам нужно хорошо изучить, как использовать MVVM: https://www.tutorialspoint.com/mvvm/ (скачать PDF).
В вашем Model.cs вам нужно определить только те классы, которые определяют ваши объекты, как показано ниже:
public class MyData
{
public int Par1{ get; set; }
public string Par2 { get; set; }
public string Par3 { get; set; }
}
Затем вам нужно создать наблюдаемую коллекцию в вашей ViewModel, реализующую NotifiyPropertyChanged:
public class ViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
private ObservableCollection<MyData> myData = ObservableCollection<MyData>;
public ObservableCollection<MyData> MyData
{
get { return myData; }
set { myData = value; NotifyPropertyChanged("MyData"); }
}
}
Затем в ViewModel вы выполните функцию MyAction () следующим образом:
public void MyAction(ComboBoxViewModel cvm)
{
//Connecting to DB to retrieve data in datatable
MyData = new ObservableCollection<MyData>(dataFromDB);
}
Наконец, вы просто связываете MyData в ItemsSource в xaml.
Не забудьте назначить свою модель просмотра как страницу / текст данных windows!