powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / DataGrid медленная отрисовка
4 сообщений из 4, страница 1 из 1
DataGrid медленная отрисовка
    #37601436
Urmatbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Я новичок в WPF. И моя проблема в следующем. делаю привязку DataGrid
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<DataGrid Grid.Row="1"  Name="dataGrid1"  AutoGenerateColumns="False"  ItemsSource="{Binding Path=gMapObjects, Mode=TwoWay }" >
            <DataGrid.Columns >
                <DataGridTemplateColumn Header="">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <CheckBox IsChecked="{Binding Path=IsChecked, Mode=TwoWay }"/>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
                
                <DataGridTextColumn Header="Наименование" Binding="{Binding Path=name}" />
                <DataGridTextColumn Header="Адрес" Binding="{Binding Path=address}"/>
                <DataGridTextColumn Header="Latitude" Binding="{Binding Path=latitude}"/>
                <DataGridTextColumn Header="Longitude" Binding="{Binding Path=longitude}"/>
                <DataGridHyperlinkColumn  Header="Группа" Binding="{Binding Path=GMapObjGroup.name}"/>
            </DataGrid.Columns>
        </DataGrid>


в коллекции записей примерно 6000, при отрисовки жутко тормозит, можно ли ускорить отрисовку. компьютер не слабый
...
Рейтинг: 0 / 0
DataGrid медленная отрисовка
    #37602348
prBoris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Urmatbek,

Медленно это сколько???? У меня получилось так

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<Window.Resources>
        <DataTemplate x:Key="checkBoxTemplate">
            <CheckBox IsChecked="{Binding Path=IsChecked, Mode=TwoWay }"/>
        </DataTemplate>
    </Window.Resources>
    <Grid>
        <DataGrid AutoGenerateColumns="False" ItemsSource="{Binding data, Mode=TwoWay}">
            <DataGrid.Columns >
                <DataGridTemplateColumn Header=""  CellTemplate="{StaticResource checkBoxTemplate}"/>
                <DataGridTextColumn Header="Наименование" Binding="{Binding Path=name}" />
                <DataGridTextColumn Header="Адрес" Binding="{Binding Path=address}"/>
                <DataGridTextColumn Header="Latitude" Binding="{Binding Path=latitude}"/>
                <DataGridTextColumn Header="Longitude" Binding="{Binding Path=longitude}"/>
                <DataGridHyperlinkColumn  Header="Группа" Binding="{Binding Path=group}"/>
            </DataGrid.Columns>
        </DataGrid>

    </Grid>



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
public System.Collections.ObjectModel.ObservableCollection<item> data
        {
            get { return (System.Collections.ObjectModel.ObservableCollection<item>)GetValue(dataProperty); }
            set { SetValue(dataProperty, value); }
        }

        // Using a DependencyProperty as the backing store for data.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty dataProperty =
            DependencyProperty.Register("data", typeof(System.Collections.ObjectModel.ObservableCollection<item>), typeof(MainWindow), null);


        public MainWindow()
        {
            InitializeComponent();
            this.DataContext = this;
            TimeSpan timeSpan = new TimeSpan();
            this.Loaded += (o, e) =>
                {
                    data = new System.Collections.ObjectModel.ObservableCollection<item>();
                    DateTime date = DateTime.Now;

                    for (int i = 0; i < 6000; i++)
                    {
                        data.Add(
                            new item()
                            {
                                address = "address" + i,
                                group = "group" + i,
                                latitude = "latitude" + i,
                                longitude = "longitude" + i,
                                name = "name" + i,
                                IsChecked = true
                            }
                            );
                    }
                     timeSpan = date - DateTime.Now;
                     MessageBox.Show(timeSpan.ToString());
                   
                };
            
        }
    }
    public class item
    {
        public bool IsChecked { get; set; }
        public string name { get; set; }
        public string address { get; set; }
        public string latitude { get; set; }
        public string longitude { get; set; }
        public string group { get; set; }
    }
...
Рейтинг: 0 / 0
DataGrid медленная отрисовка
    #37602367
prBoris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prBoris,

Ну если после отрисовки dataGrid.LoadingRow то немного больше {-00:00:00.0625804}
...
Рейтинг: 0 / 0
DataGrid медленная отрисовка
    #37602384
prBoris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prBoris,

Тормозов не заметно в процессах 28 метров.... может у вас там что то еще налепленно
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / DataGrid медленная отрисовка
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]