У меня есть DataGrid
на моей странице xaml, которую я привязываю к ObservableCollection
"MainListData" в viewModel страницы, используя MVVM:
<controls:DataGrid Grid.Column="1"
Background="Gray"
ItemsSource="{Binding MainListData}"
AutoGenerateColumns="True"
GridLinesVisibility="All"
AlternatingRowBackground="LightGray">
</controls:DataGrid>
Я хочу использовать ObservableCollection
для отображения различных типов наборов данных. DataGrid
прекрасно работает с AutoGenerateColumns
, используя пользовательский <type>
в ObservableCollection<type>
. Например, ObservableCollection<Cars>
:
public class Cars
{
public string Sedans { get; set; }
public string Pickup { get; set; }
public string Unknown { get; set; }
}
будет отображаться как:
+--------+---------+--------+
| Sedans | Pickup | Uknown |
+--------+---------+--------+
| car 1 | pickup1 | ?1 |
| car 2 | pickup2 | ?2 |
| ... | ... | ... |
+--------+---------+--------+
OR , ObservableCollection<Bikes>
:
public class Bikes
{
public string Fast { get; set; }
public string Slow { get; set; }
public string Big { get; set; }
public string Small { get; set; }
public string Electric { get; set; }
}
будет отображаться как:
+--------+-------+------+--------+-----------+
| Fast | Slow | Big | Small | Electric |
+--------+-------+------+--------+-----------+
| fast 1 | slow1 | big1 | small1 | electric1 |
| fast 2 | slow2 | big2 | small2 | electric2 |
| ... | ... | ... | ... | ... |
+--------+-------+------+--------+-----------+
Вопрос: Во время выполнения: если пользователь выбирает просмотр данных автомобилей или мотоциклов или других данных, как я могу изменить <type>
и, следовательно, данные привязки "MainListData" ObservableCollection
? Это правильный подход?
Полагаю, я хочу повторно использовать DataGrid
и привязать ObservableCollection
.