我有一个WPF窗口,其中包含一些文本框,组合框和使用MVVM的网格 组合框和网格绑定到DataTable和DataViews,只有selectedItem值绑定到Model
截至目前,使用如下辅助方法
void GetSelected()
{
if ( SelectedDataRowView != null )
obj.prop1 = (int)(SelectedDataRowView.Row["field1"]);
else
obj.prop1 = defaultValue1;
if ( SelectedDataRow1 != null )
obj.prop2 = (double)(SelectedDataRow["field2"]);
if ( SelectedDataRow2!= null )
obj.prop3 = (string)(SelectedDataRow2["field3"]);
...
}
/// and
void ToSelected()
{
if ( TryFindDataRow("field1", obj.prop1, dv1, out drv1 )
SelectedDataRowView = drv1;
else
SelectedDataRowView = null ;
...
}
正如你所看到的,它非常丑陋,想知道如何清理它!!
FYI可以使用EF&现在摆脱DataTable / DataView - db是非sql server
答案 0 :(得分:0)
也许您可以使用适当的接口将DataTable / DataRows转换为POCO对象,并将它们放在更易于MVVM的ObservableCollection中。您可以编写映射器来实现此目的,或者使用AutoMapper之类的框架。您可以继续使用您的工作,只需使用映射器层来回转换它们。