我正在编写一个用于管理工具库存的程序,并且当我让用户将工具标记为“已修复”时会遇到问题。
该计划应如下工作:
使用TIView,TIViewModel,TIModel:
使用VPRView,VPRViewModel和VPRModel:
检查员纠正问题,将工具标记为已修复,然后提交数据。
程序使用检查员ID号更新SQLite数据库,他们的解决方案将问题标记为已修复并记录完成的日期/时间。
问题步骤:
8。然后,程序从TIViewModel运行PopulateToolInventory方法以更新清单列表,以便不再锁定该工具。
总结:
当检查员将工具标记为已修复时,将使用VPRView,VPRViewModel和VPRModel更新数据库。拉取工具库存数据的方法可在TIViewModel中找到。如何让应用程序执行' PopulateToolInventory'通过VPRViewModel将数据上传到数据库之后来自VPRViewModel的方法?
代码示例:
VPRViewModel:
public void SubmitSolution()
{
VPRModel vprm = new VPRModel();
vprm.SubmitProblemSolution(ProblemSolved, ProblemSolution, InspectorID, SelectedReport[0].ToString());
ProblemReports = vprm.RetrieveProblemReports();
InspectorID = null;
ProblemSolution = null;
ProblemSolved = false;
MessageBox.Show("Solution successfully recorded!", "Success!", MessageBoxButton.OK);
// This is where I would want to call the method from the TIViewModel to update the data grid on the TIView.
}
TIViewModel:
private DataTable _toolInventory;
public DataTable ToolInventory
{
get { return _toolInventory; }
set
{
_toolInventory = value;
NotifyOfPropertyChange(() => ToolInventory);
}
}
public void PopulateToolInventory()
{
TIModel tim = new TIModel();
ToolInventory = tim.RetrieveToolInventory();
}
ShellViewModel:
class ShellViewModel : Conductor<object>
{
public void Open_ToolInventory()
{
ActivateItem(new TIViewModel());
}
public void ViewProblemReport()
{
WindowManager wm = new WindowManager();
VPRViewModel vprvm = new VPRViewModel();
wm.ShowDialog(vprvm);
}
}
仅供参考:如果这对任何解决方案都有帮助,我会使用Caliburn.Micro。
希望这是足够的信息。如果没有,只要问你需要什么!另外,请不要活着吃我的代码。我自学成才,知道我远离专业开发人员,但这是我的热情,我真的很享受。建设性的批评是值得赞赏的,请不要让我感到愚蠢。
答案 0 :(得分:0)
在问题评论中使用Ed的想法我做了以下。
class ShellViewModel : Conductor<object>
{
public void Open_ToolInventory()
{
ActivateItem(new TIViewModel());
}
public void ViewProblemReport()
{
WindowManager wm = new WindowManager();
VPRViewModel vprvm = new VPRViewModel();
wm.ShowDialog(vprvm);
}
}
更改为:
class ShellViewModel : Conductor<object>
{
TIViewModel tivm = new TIViewModel();
VPRViewModel vprvm = new VPRViewModel();
public void OpenToolInventory()
{
ActivateItem(tivm);
}
public void ViewProblemReport()
{
WindowManager wm = new WindowManager();
wm.ShowDialog(vprvm);
tivm.PopulateToolInventory();
}
}
在对话框关闭后运行目标方法,更新工具库存以立即反映所有已解决的问题。你是最好的,Ed!