Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 因此,您必须找到其他方法来重新实现相同的行为,但要以MVVM的方式。您还需要实现一个ICommand实例的加载,以替换大量的Click处理程序等_C#_.net_Wpf_Mvvm - Fatal编程技术网

C# 因此,您必须找到其他方法来重新实现相同的行为,但要以MVVM的方式。您还需要实现一个ICommand实例的加载,以替换大量的Click处理程序等

C# 因此,您必须找到其他方法来重新实现相同的行为,但要以MVVM的方式。您还需要实现一个ICommand实例的加载,以替换大量的Click处理程序等,c#,.net,wpf,mvvm,C#,.net,Wpf,Mvvm,现在,我必须承认,我的评论到目前为止可能会让你认为我不是在建议你转换你的项目。但是,我不建议您转换您的项目。WPF和使用MVVM模式有很大的好处。。。图形、动画、样式以及使任何控件看起来像其他控件的能力 我想说的最后一点是关于你关于“大数据”的问题。WPF是一个需要处理器的框架。。。这是没办法的。将成千上万的数据项呈现为漂亮的UI元素时,速度可能会很慢。然而,经过几年的大规模应用,我发现有一些方法可以改善这种情况 我们可以让WPF使用已安装的图形卡的功能,或者使用仅加载可见项数据的虚拟化面板,等

现在,我必须承认,我的评论到目前为止可能会让你认为我不是在建议你转换你的项目。但是,我不建议您转换您的项目。WPF和使用MVVM模式有很大的好处。。。图形、动画、样式以及使任何控件看起来像其他控件的能力

我想说的最后一点是关于你关于“大数据”的问题。WPF是一个需要处理器的框架。。。这是没办法的。将成千上万的数据项呈现为漂亮的UI元素时,速度可能会很慢。然而,经过几年的大规模应用,我发现有一些方法可以改善这种情况

我们可以让WPF使用已安装的图形卡的功能,或者使用仅加载可见项数据的虚拟化面板,等等。在你开始转换之前,你真的需要听听WPF的消极一面,因为一旦它被转换了,就太晚了。我还建议运行该应用程序的计算机以某种方式变得足够强大



我希望这个“总结”对你来说不是太消极,并且在某种程度上有所帮助。最后,我想说,我个人是WPF和MVVM的超级粉丝。

我建议您从客户那里多花几天时间,让它随时可用。您只需连接到数据库,只需更改应用程序的界面即可。

我建议您从客户那里多花几天时间,并确保它可以使用。您只需连接到数据库,只需更改应用程序的接口。

在codereview.stackexchange.com上这可能更合适。如果您的截止日期很紧,请忘记将其转换为MVVM。您的代码将与视图紧密连接。您将代码放在CodeBehind中,这对于MVVM来说是绝对不可能的。对于MVVM,您需要完全不包含UI特定代码的ViewModels以及模型中的所有其他内容。MVVM中的视图只包含XAML代码+自动生成的代码隐藏(在最佳情况下)。在MVVM中,只使用特定于UI特定代码的代码(即,如果您希望在用户键入文本框时触发验证),但在开始开发应用程序之前,不必考虑LogICMVVM。如果你的代码不是为它设计的,它需要大量的重构或从头开始。@Tseng谢谢你的建议,你认为它的质量如何/担心质量/:(@ZoyaSheikh
你认为它的质量如何?
-你的代码很糟糕。任何习惯于MVVM的人都认为非MVVM是幼稚的、意大利面的、不必要的代码,是由一个不成熟、经验丰富的程序员编写的,而恰恰相反。如果你的客户要求高质量的
代码,你最好不要提交这个。在codereview.stackexchange.com上这可能更合适。如果您的截止日期很紧,请忘记将其转换为MVVM。您的代码与视图紧密相连。您将代码放在CodeBehind中,这对MVVM来说是绝对不可能的。对于MVVM,您需要完全不包含UI特定代码的ViewModels以及模式中的所有其他内容l、 MVVM中的视图仅由XAML代码+自动生成的CodeBehind组成(在最佳情况下)。在MVVM中,您仅对UI特定的代码使用CodeBehind(即,如果您希望在用户键入文本框时触发验证)但是,Logic VMVM在开发应用程序之前,你必须考虑一些事情。如果你的代码不是为它设计的,它需要大量的重构或者从头开始。@曾恩,谢谢你的建议,你对它的质量/担心质量有什么看法?(@ZoyaSheikh
你认为它的质量如何?
-你的代码很糟糕。任何习惯于MVVM的人都认为非MVVM是幼稚的、意大利面的、不必要的代码,是由一个不成熟、经验丰富的程序员编写的,而恰恰相反。如果你的客户要求高质量的
代码,你最好不要提交这个。我必须同意Sheridan的观点。WPF/MVVM很棒,但在截止日期之前,移植到它并不是一项需要解决的工作。相反,你可以写几个简单的应用程序作为WPF/MVVM,这样你就可以先理解它。我同意SheridanI的观点。我发现,至少奇怪的是,你对MVVM做出了广泛的回答,却没有提到
数据绑定这个词
,甚至一次也没有。仍然是+1。@HighCore,可以随意添加一个部分。我必须同意Sheridan的观点。WPF/MVVM很棒,但在截止日期之前移植到它不是一项需要解决的工作。相反,去写几个简单的应用程序作为WPF/MVVM,这样你就可以先理解它。我同意Sheridan的观点,至少你会觉得奇怪,你正在制作一个e关于MVVM的详细回答没有提到数据绑定这个词,甚至一次也没有。不过,+1.@HighCore,可以随意添加一个部分。
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);
                }
            }