zoukankan      html  css  js  c++  java
  • DataGrid绑定DataTable出错

    直接用DataGrid.ItemSource = DataTable.DefaultView时会出现以下错误:

    target element is 'TextBlock' (Name=''); target property is 'Text

    需要用CollectionViewSource来做中间转换 .另外实时更新数据,所以不能把它做成StaticResource。

    要想DataGrid render速度快,需要支持虚拟化,及设置列宽和行高。

    <toolkit:DataGrid VirtualizingStackPanel.VirtualizationMode="Recycling" 
                                          VirtualizingStackPanel.IsVirtualizing="True" 
                                          EnableColumnVirtualization="True"
                                          EnableRowVirtualization="True"
                                          RowHeight="23"
                                          ColumnWidth="100"
                                          ScrollViewer.HorizontalScrollBarVisibility="Visible"
                                          ScrollViewer.VerticalScrollBarVisibility="Visible"
                                          Name="DgdData" Grid.Row="0" AutoGenerateColumns="True" DataContext="{Binding DataTableSource}" ItemsSource="{Binding}" />
                        
     private void BtnFirstPage_Click(object sender, RoutedEventArgs e)
            {
                this.mData.DataPageNum = 1;
                this.SetDisData(this.mData.DataPageNum, this.mData.DataPageSize);
            }
    
            private void BtnPrevPage_Click(object sender, RoutedEventArgs e)
            {
                this.mData.DataPageNum--;
                this.mData.DataPageNum = this.mData.DataPageNum > 1 ? this.mData.DataPageNum : 1;
                this.SetDisData(this.mData.DataPageNum, this.mData.DataPageSize);
            }
    
            private void BtnNextPage_Click(object sender, RoutedEventArgs e)
            {
                int maxPageNum = (int)Math.Ceiling((double)this.mData.Times.Count / (double)this.mData.DataPageSize);
                this.mData.DataPageNum++;
                this.mData.DataPageNum = this.mData.DataPageNum > maxPageNum ? maxPageNum : this.mData.DataPageNum;
                this.SetDisData(this.mData.DataPageNum, this.mData.DataPageSize);
            }
    
            private void BtnLastPage_Click(object sender, RoutedEventArgs e)
            {
                int maxPageNum = (int)Math.Ceiling((double)this.mData.Times.Count / (double)this.mData.DataPageSize);
                this.mData.DataPageNum = maxPageNum;
                this.SetDisData(this.mData.DataPageNum, this.mData.DataPageSize);
            }
            
            private void SetDisData(int pageNum, int pageSize)
            {
                DataRow row;
                int startRow = (pageNum - 1) * pageSize;
                int endRow = startRow + pageSize;
                endRow = this.mData.Times.Count > endRow ? endRow : this.mData.Times.Count;
                this.mDtData.Rows.Clear();
    
                CollectionViewSource itemCollectionViewSource2 = new CollectionViewSource();
                itemCollectionViewSource2.Source = this.mDtData;
                DgdData.DataContext = itemCollectionViewSource2;
    
            }
  • 相关阅读:
    运行带参数的python脚本
    调用其他python脚本文件里面的类和方法
    快速学会在JSP中使用EL表达式
    理解maven项目的pom.xml文件中,<scope>标签的作用——作用域以及依赖传递
    理解JavaWeb项目中的路径问题——相对路径与绝对路径
    hdu4417(Super Mario)—— 二分+划分树
    hdu4325-Flowers-树状数组+离散化
    poj3321-Apple Tree(DFS序+树状数组)
    数据的离散化
    POJ2676 – Sudoku(数独)—DFS
  • 原文地址:https://www.cnblogs.com/xpvincent/p/9488855.html
Copyright © 2011-2022 走看看