title: WPF: How do I start styling a DataGrid that was built using MVVM?
body: <p>I have a list of names that I'd like to have bound to a datagrid for editing/sorting/etc. But, I don't like how the DataGrid is displayed at all. Columns are placed in Alphabetical order when I really want a custom order (and I wish I could hide the ID column, or make that column not editable). I'm not sure how to start doing any of this...</p>
  
  <p>NOTE: I removed a lot of "common" code (ex: INotifyPropertyChanged code...)</p>
  
  <pre><code>//PersonModel.cs
  public class PersonModel
  {
      public Int32 ID { get; set; }
      public String FirstName { get; set; }
      public String LastName { get; set; }
  }
  
  //PersonViewModel.cs
  public class PersonViewModel
  {
      public PersonViewModel()
      {
          Init();
      }
      public PersonViewModel(ObservableCollection&lt;PersonModel&gt; persons)
      {
          Init(person);
      }
      private void Init(ObservableCollection&lt;PersonModel&gt; persons = null)
      {
          Persons = person ?? new ObservableCollection&lt;PersonModel&gt;();
      }
  
      public ObservableCollection&lt;PersonModel&gt; Persons { get; set; }
  }
  
  //PersonView.xaml
  &lt;UserControl ...
  
      ...
  
      &lt;DataGrid ItemsSource="{Binding Persons}" /&gt;
  
      ...
  &lt;/UserControl&gt;
  </code></pre>