我正在学习如何制作一个WPF应用程序,通过制作一个工具来帮助我与地下城&; 龙。 基本上,这是一个物品数据库,我也可以通过在“宝藏表”上“滚动”来生成一个战利品列表,“宝藏表”给了我“物品表”来依次滚动。
我完成了Item database viewer和一个窗口的制作,您可以在其中选择一个Item表,在datagrid中查看它的内容以及添加,编辑和删除Item表。
我现在需要做同样的宝藏表。 它需要与Item表编辑器非常相似,所以我想知道我是否不能重用它,将TreureTableVM而不是ItemTableVM输入到TreureTableVM中。 根据哪个VM被设置为窗口的DataContext,视图将做一些稍微不同的事情,包括在DataGrid中显示一些不同的列。
TreureTableVM和ItemTableVM具有相同的方法和属性,尽管其实现略有不同。 还有一对属性具有不同的类型(currentTable在TreureTableVM中为TreureTable,ItemTableVM中为ItemTable.CurrentRow在其中一个中为TreureTableRow,在另一个中为ItemTableRow.TableList在其中一个中为ObservableCollection,在另一个中为ObservableCollection)
我该怎么做呢?
您可以使用相同的表,只需在datacontext中添加一个新字段,名为“type”,值为“treasure”或“item”。 然后在VM上按类型筛选数据。