Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / DataGridColumn не меняет размер после изменения размера окна / 12 сообщений из 12, страница 1 из 1
28.04.2018, 12:49
    #39637992
mbrdrg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataGridColumn не меняет размер после изменения размера окна
У меня есть DataGrid. Я заполняю колонки и для того, чтобы колонки были по размеру грида, я использую binding в свойство DataGrid его параметра ActualWidth. Без этого это не работает.

Если не изменять размер самого окна браузера, то всё работает как надо, но после ресайза ширина уже не меняется, так как благодаря биндингу DataGrid имеет фиксированный размер.

Что сделать, чтобы работало всё корректно и при загрузке и при ресайзе.

Мой код:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
<Grid Name="gridForDataGridNames">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"></ColumnDefinition>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition MinHeight="240" Height="*"></RowDefinition>
    </Grid.RowDefinitions>

    <sdk:DataGrid AutoGenerateColumns="False"  x:Name="dataGridForNames"
                    Width="{Binding ElementName=gridForDataGridNames, Path=ActualWidth}"
                    Grid.Row="0" Grid.Column="0" HeadersVisibility="None"
                    ItemsSource="{Binding Path=Names}">

        <sdk:DataGrid.Columns>
            <sdk:DataGridTemplateColumn Header="Image" Width="*">
                <sdk:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Button Content="{Binding LastName}"></Button>
                    </DataTemplate>
                </sdk:DataGridTemplateColumn.CellTemplate>
            </sdk:DataGridTemplateColumn>
        </sdk:DataGrid.Columns>
    </sdk:DataGrid>
</Grid>



Модератор: Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
28.04.2018, 13:00
    #39637999
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataGridColumn не меняет размер после изменения размера окна
mbrdrg
Код: xml
1.
Width="{Binding ElementName=gridForDataGridNames, Path=ActualWidth}

Вот это зачем? DataGrid и так растянется на ширину Grid-а
...
Рейтинг: 0 / 0
28.04.2018, 13:35
    #39638015
mbrdrg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataGridColumn не меняет размер после изменения размера окна
Shocker.Prombrdrg
Код: xml
1.
Width="{Binding ElementName=gridForDataGridNames, Path=ActualWidth}

Вот это зачем? DataGrid и так растянется на ширину Grid-а

Я знаю. DataGrid будет растянут, но не колонка. Это решение я нагуглил ранее.
...
Рейтинг: 0 / 0
28.04.2018, 13:47
    #39638024
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataGridColumn не меняет размер после изменения размера окна
в колонке стоит Width="*" - она тоже будет растянута на ширину DataGrid-а. Так что, пока непонятно, в чем проблема.

Правда, неясно, что такое sdk:, может вы используете не коробочный грид, но забыли нам об этом рассказать?
...
Рейтинг: 0 / 0
28.04.2018, 14:19
    #39638041
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataGridColumn не меняет размер после изменения размера окна
попробуйте отключить горизонтальную прокрутку у DataGrid'а принудительно.
затем попробуйте сделать все колонки фиксированной длинны или авто, а последнюю *.
...
Рейтинг: 0 / 0
28.04.2018, 15:23
    #39638077
mbrdrg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataGridColumn не меняет размер после изменения размера окна
Shocker.Proв колонке стоит Width="*" - она тоже будет растянута на ширину DataGrid-а. Так что, пока непонятно, в чем проблема.

Правда, неясно, что такое sdk:, может вы используете не коробочный грид, но забыли нам об этом рассказать?

В sdk прописан следующий namespace - "xmlns:sdk=" http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"

По факту, если я не сделаю данный binding, то из-за того, что в колонке стоит Width="*" он будет расширен полностью на всю страницу. Как я понимаю, это происходит из-за того, что Width не задан и он растягивается на всю ширину.
...
Рейтинг: 0 / 0
28.04.2018, 15:30
    #39638081
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataGridColumn не меняет размер после изменения размера окна
mbrdrgПо факту, если я не сделаю данный binding, то из-за того, что в колонке стоит Width="*" он будет расширен полностью на всю страницу. Как я понимаю, это происходит из-за того, что Width не задан и он растягивается на всю ширину.Нет. Столбец (если он один) будет соответствовать ширине DataGrid. Тот, в свою очередь, будет соответствовать ширине Grid, который, в свою очередь, будет соответствовать ширине страницы.
А какое поведение вам требуется - загадка, но идете не тем путем.
...
Рейтинг: 0 / 0
28.04.2018, 15:36
    #39638084
mbrdrg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataGridColumn не меняет размер после изменения размера окна
Roman Mejtesпопробуйте отключить горизонтальную прокрутку у DataGrid'а принудительно.
затем попробуйте сделать все колонки фиксированной длинны или авто, а последнюю *.

Попробовал вашу идею. Колонка расширяется полностью до конца страницы.
Тут описано такое же решение.
...
Рейтинг: 0 / 0
28.04.2018, 15:42
    #39638089
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataGridColumn не меняет размер после изменения размера окна
mbrdrgПопробовал вашу идею.не знаю, я никаких идей еще не предлагал. Потому что mbrdrgЧто сделать, чтобы работало всё корректноне раскрыто. Непонятно, какой результат вы хотите получить, вы изложили только свою попытку сделать ЧЕГО-ТО
...
Рейтинг: 0 / 0
28.04.2018, 15:54
    #39638097
mbrdrg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataGridColumn не меняет размер после изменения размера окна
Shocker.PrombrdrgПопробовал вашу идею.не знаю, я никаких идей еще не предлагал. Потому что mbrdrgЧто сделать, чтобы работало всё корректноне раскрыто. Непонятно, какой результат вы хотите получить, вы изложили только свою попытку сделать ЧЕГО-ТО

Сейчас изложу всё подробно.

У меня имеется приложение с DataGrid-ом.
В нём есть одна колонка, но она не растягивается на всю ширину DataGrid-а.
Я попробовал в чистом проекте создать DataGrid, не указывая его ширину, но указать в колонке Width="*" и всё работает. При изменении размеров окна, он также работает.

В моём приложении при загрузке страницы DataGrid растягивается по ширине, но данные внутри (один столбец) нет. Что может быть следствием такого поведения? В чистом проекте всё хорошо, а тут нет. Возможно из-за атрибутов родителей..
...
Рейтинг: 0 / 0
28.04.2018, 15:57
    #39638098
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataGridColumn не меняет размер после изменения размера окна
Ну так вы и ответили сами. Приведенный вами код рабочий, а кода "вашего приложения" мы не видели.

Отлаживайтесь. Если рабочий вариант, есть нерабочий. Приводите пошагово один из них к другому - найдете, в чем проблема.
...
Рейтинг: 0 / 0
29.04.2018, 08:51
    #39638250
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataGridColumn не меняет размер после изменения размера окна
а для чего это нужно? чтоб выделение было FullRow? это можно реализовать на уровне шаблона
или для чего последняя пустая колонка? мне не очень понятен её смысл.
Без костылей это работать не будет. Колонок должно быть ровно столько, сколько отображается данных, остальные области можно определить в шаблоне.
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / DataGridColumn не меняет размер после изменения размера окна / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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