powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Связывание колонок DataGrid по ширине
7 сообщений из 7, страница 1 из 1
Связывание колонок DataGrid по ширине
    #38426059
ЧитательX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. На форме имеются два DataGrid: grid1 и grid2
2. Имеются два класса, которые определяют элемент коллекции:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public class DataItem
{
  public int ID { get; set; }
  public DataSubItem SubItems { get; set; }
  
  public DataItem(int id, DataSubItem subitem) { ID = id; SubItems = subitem; }
}

public class DataSubItem
{
  public string Text1 { get; set; }
  public string Text2 { get; set; }

  public DataSubItem(string text1, string text2) { Text1 = text1; Text2 = text2; }
}


3. При загрузке формы заполняем коллекцию и подключаем ее к обоим гридам:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
private void Window_Loaded(object sender, RoutedEventArgs e)
{
  ObservableCollection<DataItem> list = new ObservableCollection<DataItem>();

  DataItem item = null;
  list.Add(new DataItem(1, new DataSubItem("aaa1", "bbb1")));
  list.Add(new DataItem(2, new DataSubItem("aaa2", "bbb2")));

  grid1.ItemsSource = list;
  grid2.ItemsSource = list;
}


4.В XAML первый грид отображает SubItems.Text1, а второй - SubItems.Text2
Код: sql
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.
<Window x:Class="wpf2.Window2"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window2" Height="258" Width="643" Loaded="Window_Loaded">
	<Grid>
		<Grid.RowDefinitions>
			<RowDefinition />
			<RowDefinition />
		</Grid.RowDefinitions>

		<DataGrid Grid.Row="0" Name="grid1" AutoGenerateColumns="False">
			<DataGrid.Columns>
				<DataGridTextColumn Binding="{Binding ID}" />
				<DataGridTextColumn Binding="{Binding SubItems.Text1}" />
			</DataGrid.Columns>
		</DataGrid>

		<DataGrid Grid.Row="1" Name="grid2" AutoGenerateColumns="False">
			<DataGrid.Columns>
				<DataGridTextColumn Binding="{Binding ID}" />
				<DataGridTextColumn Binding="{Binding SubItems.Text2}" />
			</DataGrid.Columns>
		</DataGrid>

	</Grid>
</Window>



Вопрос: Как связать колонки гридов по ширине? В этом вопросе мягко говоря "плаваю".
...
Рейтинг: 0 / 0
Связывание колонок DataGrid по ширине
    #38426105
ЧитательX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уточняю вопрос. Как связать одноименные колонки двух гридов, чтобы при изменении ширины колонки в одном гриде синхронно менялась бы ширина аналогичной колонки в другом гриде.
...
Рейтинг: 0 / 0
Связывание колонок DataGrid по ширине
    #38427488
ЧитательX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну что никто и не как?
...
Рейтинг: 0 / 0
Связывание колонок DataGrid по ширине
    #38427510
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там все не так просто - нужно будет пересчитывать ширину прочих колонок, иначе их поведение будет непредсказуемо.
Как вариант для разбора - см. пример здесь . DataGrid with footer по ссылке как раз реализуется за счет двух связанных по ширине колонок гридов.
...
Рейтинг: 0 / 0
Связывание колонок DataGrid по ширине
    #38427544
ЧитательX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот как-то хочеться забиндить grid2.Width с grid1.ActualWidth, но не очень выходит.
Есть вариант в коде, в обработчике грида OnLayoutUpdated двигать колонки, но как это сделать в XAML-е???
...
Рейтинг: 0 / 0
Связывание колонок DataGrid по ширине
    #38427688
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Связывание колонок DataGrid по ширине
    #38434206
ЧитательX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посмотрел ссылки "здесь или здесь".
Не все сразу понял, но показалось интересно.
Буду пробовать. Спасибо!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Связывание колонок DataGrid по ширине
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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