在单个视图中有几个Datagrid吗?

时间:2016-07-06 17:35:13

标签: c# wpf xaml mvvm datagrid

我的WPF应用只有一个MainWindow.xaml,其中包含几个与DataGrid中的ObservableCollection绑定的MainWindow.xaml.cs

例如,

public MainWindow()
{
    var dg1 = new ObservableCollection<CustomClass1>();
    var dg2 = new ObservableCollection<CustomClass2>();
    var dg3 = new ObservableCollection<CustomerClass3>();
}

问题是MainWindow.xaml越来越长,因为我不断在其中添加新的DataGrid

我可以将每个DataGrid分隔为UserControlPage吗? 或者您是否知道在WPF应用程序中处理多个DataGrid的更好解决方案?

提前致谢!

2 个答案:

答案 0 :(得分:1)

是。有可能的。 在我看来,最好在你的情况下遵循MVVM方法。希望你知道它。 如果您不了解这种方法,请了解它。

您可以创建3个不同的用户控件,或者如果您认为一个就足够了,那么就足够了。只需创建一个用户控件并为其创建相应的视图模型。 在viewmodel中,您可以将视图的datagrids源绑定到属性,从而降低复杂性,提高代码的可维护性和可读性。

你也不会觉得MainWindow变得复杂了。在我看来,让MainWindow只有几行代码。

答案 1 :(得分:0)

是的,您可以(并且可能应该)将您的DataGrids分离为单独的UserControl。不要将集合保留在代码隐藏中,而应考虑实现Model-View-ViewModel pattern(MVVM)。确保将每个UserControl的DataContext设置为相关视图模型的实例。这将阻止您当前的.xaml / .xaml.cs文件变得过大,并且还有助于使您的组件更易于重复使用。