我的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
分隔为UserControl
或Page
吗?
或者您是否知道在WPF应用程序中处理多个DataGrid
的更好解决方案?
提前致谢!
答案 0 :(得分:1)
是。有可能的。 在我看来,最好在你的情况下遵循MVVM方法。希望你知道它。 如果您不了解这种方法,请了解它。
您可以创建3个不同的用户控件,或者如果您认为一个就足够了,那么就足够了。只需创建一个用户控件并为其创建相应的视图模型。 在viewmodel中,您可以将视图的datagrids源绑定到属性,从而降低复杂性,提高代码的可维护性和可读性。
你也不会觉得MainWindow变得复杂了。在我看来,让MainWindow只有几行代码。
答案 1 :(得分:0)
是的,您可以(并且可能应该)将您的DataGrids分离为单独的UserControl。不要将集合保留在代码隐藏中,而应考虑实现Model-View-ViewModel pattern(MVVM)。确保将每个UserControl的DataContext设置为相关视图模型的实例。这将阻止您当前的.xaml / .xaml.cs文件变得过大,并且还有助于使您的组件更易于重复使用。