我用数据基使用Devexpress和Ado.net连接模式制作了WPF应用程序。我在其他语言中工作,现在转到C#,我是WPF .I的新手,我编写了这段代码来编辑单个和分组的行:
void EditRow(int focRowHand, nrcsaEntities a)
{
Name nametext = grid.GetRow(focRowHand) as Name;
try
{
if (nametext.Name1 != string.Empty)
{
update_id = nametext.PK_ID;
txtName2.Text = update_text = nametext.Name1;
if (Panel3.Visibility == System.Windows.Visibility.Visible)
{
Panel1.Visibility = System.Windows.Visibility.Visible;
Panel3.Visibility = System.Windows.Visibility.Collapsed;
}
else
{
Panel1.Visibility = System.Windows.Visibility.Collapsed;
Panel3.Visibility = System.Windows.Visibility.Visible;
}
}
}
catch (Exception err)
{
DXMessageBox.Show(err.StackTrace);
}
}
private void ToggleButton1_Copy_Click(object sender, RoutedEventArgs e)
{
if (view.FocusedRowHandle == -1)
{
DXMessageBox.Show("Please Select any Item From Grid List");
}
else
{
try
{
int FocRowHand = view.FocusedRowHandle;
nrcsaEntities a = new nrcsaEntities();
if (grid.IsGroupRowHandle(FocRowHand))
{
int childCount = grid.GetChildRowCount(FocRowHand);
for (int i = 0; i < childCount; i++)
{
int childHandle = grid.GetChildRowHandle(FocRowHand, i);
EditRow(childHandle, a);
}
}
else
{
EditRow(FocRowHand, a);
}
}
catch (Exception ee)
{
DXMessageBox.Show(ee.StackTrace);
}
}我的客户要求生成高质量的代码。有可能超过1000个用户将使用此应用程序,并且可以将用户数据保存到5000多个,我的问题是:因为我向我的客户提交应用程序的时间较少。如果我想将这段代码转换成MVVM,那么如何做到这一点对于我来说并不复杂。其次,您对这个代码质量有什么看法?我对此非常困惑。我期待着你的答复。
发布于 2013-08-30 16:04:26
我建议您多花几天时间从您的客户,并采取Devexpress MVVM脚手架向导,它是准备使用。您只需与数据库建立连接,只需更改应用程序的接口即可。
发布于 2013-08-30 15:52:07
我所能告诉您的是,如果您将此应用程序转换为WPF和MVVM,那么您将需要重写大量代码。一个问题是WPF和其他语言很不一样.由于这些差异,大多数开发人员在第一次学习WPF时面临着艰难的挑战。
然后,如果你想使用MVVM设计模式,事情就会变得更加不同.例如,通常不赞成用文件后面的代码编写代码。当然,使用文件背后的代码是可能的,但是我们倾向于实现Attached Properties来“包装”这些UI控制事件处理程序的功能,例如SelectionChanged。
通常,您向我们展示的代码必须移动到视图模型中,但随后您将失去引用控件的能力,因此您必须找到其他方法来重新实现相同的行为,但要以MVVM的方式实现。您还需要实现大量的ICommand实例来替换大量的Click处理程序,等等。
现在,我必须承认,到目前为止,我的评论可能会让您认为,我并不是建议您转换您的项目。但是,我不建议您转换您的项目。WPF和使用MVVM模式有很大的好处。图形,动画,样式和能力,使任何控制看起来像任何其他事情。
我想提出的最后一点是关于“大数据”的问题。WPF是一个需要处理器的框架..。这是无法避免的。当将数以万计的数据项呈现为漂亮的UI元素时,它可能会很慢。然而,在进行了几年的大规模应用之后,我发现有一些方法可以改善这种情况。
我们可以让WPF使用安装的显卡的功能,或者使用虚拟面板,这些面板只为可见项加载数据,等等。在开始转换之前,您确实需要了解WPF的这个负面方面,因为一旦它被转换了,就太晚了。我还建议以某种方式使运行应用程序的计算机变得足够强大。
我希望这个“总结”对你来说不是太消极,并在某种程度上有所帮助。最后,我想说,我个人是WPF和MVVM的超级粉丝。
https://stackoverflow.com/questions/18536394
复制相似问题