Для этого MVVM использует ViewModel.
Не изменяйте модель, а создавайте классы ViewModel, структурированные в соответствии с потребностями представления.это то место, где вы не указали бы свойства, которые вам не нужны.
РЕДАКТИРОВАТЬ
Вот способ сделать это:
public class ItemTypeViewModel : INotifyPropertyChanged
{
private string _name;
public string Name
{
get { return _name; }
set
{
if (_name != value)
{
_name = value;
OnPropertyChanged("Name");
}
}
}
private string category;
public string Category
{
get { return category; }
set
{
if (category != value)
{
category = value;
OnPropertyChanged("Category");
}
}
}
public static ItemTypeViewModel FromModel(ItemType model)
{
var itemTypeViewModel =
new ItemTypeViewModel
{
Name = model.Name,
Category = categories[model.CategoryID].Name;
};
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
var p = PropertyChanged;
if (p != null)
{
p(this, new PropertyChangedEventArgs(propertyName));
}
}
}
public class ItemTypesViewModel : ObservableCollection<ItemTypesViewModel>
{
private ObservableCollection<ItemTypeViewModel> _collection;
public ObservableCollection<ItemTypeViewModel> Collection
{
get { return _collection; }
set
{
if (_collection != value)
{
_collection = value;
OnPropertyChanged(new PropertyChangedEventArgs("Collection"));
}
}
}
}
Используйте статический метод для создания экземпляров ItemTypeViewModel
для каждого ItemType в модели.Поместите их все в свойство 'Collection' ItemTypeSViewModel
.
Привязать DataGrid к коллекции.
Я "удалил" отношение, существующее в вашей модели между ItemType и ItemCategory измоя ViewModel.Это всего лишь один из способов справиться с такой конструкцией.Вместо этого вы также можете создать класс ViewModel для ItemCategory и иметь ссылку в классе ItemTypeViewModel на экземпляр класса ItemCategoryViewModel.
Обратите внимание, что это только один из способов справиться с этим.Вы можете решить эту проблему и другими способами.Также: вам нужно будет обеспечить преобразование классов ViewModel обратно в модель.
Последний совет: если вы новичок, начните читать / смотреть учебные пособия по MVVM: https://stackoverflow.com/questions/2267903/learning-mvvm-for-wpf