none
请教:wpf中的datagrid显示oracle中的数据时画面非常卡 RRS feed

  • 问题

  • 由于刚学习wpf,绑定数据时用的Winform的方法

      ds_zonglan = new DataSet();
               
                OracleDataAdapter da = new OracleDataAdapter(str_zonglan, ConDB.myConnection);
                da.Fill(ds_zonglan);
                datagrid_1.ItemsSource = ds_zonglan.Tables[0].DefaultView;
    dataset中差不多有1500多条数据,拖动滚动条时datagrid样式为默认时都非常卡,请教下如何解决,或者有其他好的绑定方法?拜托高手帮下忙
    2012年12月19日 1:54

答案

  •   <ControlTemplate  TargetType="{x:Type Window}">
                        <!--若不设置margin,阴影无法显示(被挡住了)-->
                        <Border x:Name="FussWindowBorder" Background="{TemplateBinding Background}" CornerRadius="5" Margin="12"   BorderThickness="1" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"  >
                            <Border.Effect>
                                <DropShadowEffect BlurRadius="8" ShadowDepth="10" Color="#00000000" Opacity="0.8"/>
                            </Border.Effect>
                        
                                <AdornerDecorator Height="Auto" Width="Auto">
                                    <ContentPresenter/>
                                </AdornerDecorator>
                            <!--</Grid>-->
                        </Border>
                    </ControlTemplate>

    找到问题所在了,开始出于界面美观考虑,给登陆界面做了一个窗口样式,而这个窗口样式我也应用到了主窗体,最后测试卡的原因是由于万恶的阴影效果导致的,具体原因不知

    • 已标记为答案 虾米啊 2012年12月20日 1:56
    2012年12月20日 1:55

全部回复

  • 你要是换成SQL Server的数据,也是这么卡吗?
    2012年12月19日 5:04
  • 还没尝试过用SQL。。。用oracle连接vs提示oracle已过时。。是不是对oracle的支持已经弱化了

    2012年12月19日 5:07
  • 如果你认定是因为Oracle,所以才非常卡,那么你就需要先自己测试你的结论是否正确。

    我建议你手动创建一个含有 1500 条数据的 DataTable,然后使用它来绑定。

    很有可能的原因是你的机器性能问题。

    2012年12月19日 5:13
  • 明天测试下手动创建的数据,我用winform同样的数据量就很流畅,不太清楚是什么原因
    2012年12月19日 8:45
  •   <ControlTemplate  TargetType="{x:Type Window}">
                        <!--若不设置margin,阴影无法显示(被挡住了)-->
                        <Border x:Name="FussWindowBorder" Background="{TemplateBinding Background}" CornerRadius="5" Margin="12"   BorderThickness="1" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"  >
                            <Border.Effect>
                                <DropShadowEffect BlurRadius="8" ShadowDepth="10" Color="#00000000" Opacity="0.8"/>
                            </Border.Effect>
                        
                                <AdornerDecorator Height="Auto" Width="Auto">
                                    <ContentPresenter/>
                                </AdornerDecorator>
                            <!--</Grid>-->
                        </Border>
                    </ControlTemplate>

    找到问题所在了,开始出于界面美观考虑,给登陆界面做了一个窗口样式,而这个窗口样式我也应用到了主窗体,最后测试卡的原因是由于万恶的阴影效果导致的,具体原因不知

    • 已标记为答案 虾米啊 2012年12月20日 1:56
    2012年12月20日 1:55