我正在开发一个WPF应用程序,客户端可以从下拉列表(ComboBox)中选择一个设备,然后在DataGrid
控件中显示它们的规范。我为20种不同的产品制作了大约20种不同的DataGrids,并且我在Window.xaml标记的预定义Grid.Row
中保持它们彼此重叠(在另一个之上),每个DataGrid
的可见性{{ 1}}设置为隐藏,这样当更改ComboBox
选择时,我将属于从ComboBox中选择的特定产品的DataGrid的可见性更改为我后面代码中的MonitorDataGrid.Visibility = Visibility.Visible;
。
它完成了这项工作,但管理Window的布局变得非常艰巨和灾难,特别是当我想要改变DataGrids的样式或位置时。我想知道在一个占用同一区域的窗口中管理大量控件标记的最佳方法是什么?
提前致谢。
答案 0 :(得分:2)
首先,Grid具有AutoGenerateColumns属性,该属性会自动从列表中提取列,
但是如果你不想在实体中有一些额外的属性,你可以在resourcedictionary中创建模板,只保留DropDown项目中的键,并在itemchange上更改网格模板
显示和隐藏网格确实是最糟糕的方法
同样this应该有助于做你想做的事情
希望这有帮助