Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Артефакты в WPF DataGrid? Произвольный сдвиг строк 
:(
    Опции темы
Hobotanius
  Дата 9.12.2011, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 24.7.2008

Репутация: нет
Всего: нет



Очень странное поведение датагрида. Я просто не понимаю из-за чего это может происходить. Помогите плиз разобраться - где вообще копать.
user posted image

Какой-то спонтанный сдвиг некоторых строк. Причём если покрутить колесо мыши так что строка уйдёт за пределы видимости, а потом покрутить обратно, то сдвиг может исчезнуть. А при повторном прокручивании колеса - будет сдвинута другая строка.
Вот:
user posted image

И Вот:
user posted image

Самое странное - я делаю эту программу несколько месяцев и только сейчас впервые увидел такой глюк! 
PM MAIL   Вверх
Hobotanius
Дата 9.12.2011, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 24.7.2008

Репутация: нет
Всего: нет



На сколько я успезл заметить - одноразово лечится по кнопке обновить - обновление источника данных и перепривязка. Жду любых предположений, выложу код...
PM MAIL   Вверх
Gvozdin
Дата 9.12.2011, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 9.8.2011
Где: Москва

Репутация: 8
Всего: 8



В обычном DataGrid не встречал такого smile
Стили какие-нибудь применены к гриду или строкам?
--------------------
http://gvozdin.ru
PM MAIL WWW   Вверх
Hobotanius
Дата 12.12.2011, 02:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 24.7.2008

Репутация: нет
Всего: нет



XAML:
Код

        <DataGrid Grid.Row="1" Name="dataGrid" Style="{StaticResource StyleDirectoryDataGrid}" MouseDoubleClick="dataGrid_MouseDoubleClick">
            <DataGrid.Resources>
                <Style TargetType="DataGridColumnHeader">
                    <EventSetter Event="PreviewMouseDown" Handler="DataGridColumnHeader_PreviewMouseDown" />
                </Style>
            </DataGrid.Resources>


App.xaml
Код

        <Style TargetType="DataGrid" x:Key="StyleDirectoryDataGrid">
            <Setter Property="AutoGenerateColumns" Value="True"/>
            <Setter Property="Margin" Value="2,4,2,12" />
            <Setter Property="IsReadOnly" Value="true" /> 
            <Setter Property="HeadersVisibility" Value="Column" />
            <Setter Property="Background" Value="#FFFFFF" />
            <Setter Property="GridLinesVisibility" Value="All" />
            <Setter Property="VerticalGridLinesBrush" Value="#DCE1E9" />
            <Setter Property="HorizontalGridLinesBrush" Value="#DCE1E9" />
            <Setter Property="SelectionUnit" Value="FullRow"/>
            <Setter Property="HeadersVisibility" Value="Column"/>
            <Setter Property="MinColumnWidth" Value="0" />
            <Setter Property="MaxColumnWidth" Value="700" />
            <Setter Property="CanUserReorderColumns" Value="False" />
            <Setter Property="SelectionMode" Value="Single" />
            <Setter Property="CellStyle">
                <Setter.Value>
                    <Style TargetType="DataGridCell">
                        <Style.Triggers>
                            <Trigger Property="DataGridCell.IsSelected" Value="true">
                                <Setter Property="Background" Value="#6A78B0" />
                                <Setter Property="Foreground" Value="#FFFF97"/>
                                <Setter Property="BorderBrush" Value="#6A78B0" />
                            </Trigger>
                        </Style.Triggers>
                    </Style>
                </Setter.Value>
            </Setter>
            <Setter Property="ColumnHeaderStyle">
                <Setter.Value>
                    <Style TargetType="DataGridColumnHeader">
                        <Setter Property="HorizontalContentAlignment" Value="Left" />
                        <Setter Property="Height" Value="30" />
                        <Setter Property="Padding" Value="5" />
                    </Style>
                </Setter.Value>
            </Setter>
        </Style>



C# инициализация грида
Код

        #region Инициализация грида
        public void ReInitializeGrid()
        {
            if (!Properties.Settings.Default.AccessibleDataBase)
                return;

            try
            {
                using (SqlConnection connection = new SqlConnection(Properties.Settings.Default.ConnectDatabaseString))
                {
                    SqlCommand command = new SqlCommand("select * from view_acts", connection);

                    connection.Open();
                    SqlDataReader reader = command.ExecuteReader();
                    _dataSource.Clear();
                    _dataSource.Load(reader);
                    reader.Close();
                    connection.Close();

                    Binding bind = new Binding();
                    dataGrid.DataContext = _dataSource;
                    dataGrid.SetBinding(DataGrid.ItemsSourceProperty, bind);
                }
            }
            catch { }
        }
        #endregion


Вот как-то так...
PM MAIL   Вверх
Kefir
Дата 12.12.2011, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 22
Всего: 87



Посмотрите на эту строку через Snoop - может что-то прояснится.
Если ничего не прояснится - сделайте изолированный проект где этот баг можно будет воспроизвести и выложите сюда.

По существу - никогда сам с таким багом не встречался, поэтому сказать что-то конкретное не могу. Стили ваши не рассматривал правда пока.
PM MAIL WWW Skype   Вверх
Gvozdin
Дата 13.12.2011, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 9.8.2011
Где: Москва

Репутация: 8
Всего: 8



Стили вроде ничего такого не должны давать smile
Можно временно конечно все настройки грида оставить по умолчанию и помотреть, вдруг всё же они.
--------------------
http://gvozdin.ru
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0652 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.