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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменения ширины колонок в GridViewColumnCo 
:(
    Опции темы
Flap
Дата 16.11.2012, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Не дайте разочароваться в WPF, вторую неделю бьюсь над одной проблемой и почти победил ее.
Всем известная разметка для сложных заголовков:

------------------------------------
|             |           Набор 1            |
|  Дата     -------------------------
|             |   зн1  |    зн2  |   зн3   |
------------------------------------

Во всех источниках, где я встречал подобную реализацию, пишут, что надо допиливать. Но как? Опыта не хватает.
Начну по порядку. Есть такая таблицу, обратите внимание на второй столбец
Код

    <DataGrid Name="grid2" 
         AutoGenerateColumns="False"
         CanUserResizeColumns="False"
        >
        <DataGrid.Columns>
            <DataGridTextColumn Header="Дата" Binding="{Binding rn}"
                Width="50"
            />
            <DataGridTemplateColumn Header="Набор1" x:Name="nabor1"
                Width="200"
                CanUserResize="False"
                HeaderTemplate="{StaticResource MultiColumnHeaderTemplate}"
                CellTemplate="{StaticResource MultiColumnCellTemplate}"/>
            <DataGridTextColumn Header="Остальное" Binding="{Binding name}"
                Width="70"/>
        </DataGrid.Columns>        
    </DataGrid>


Шаблон для второго столбца такой:
Код

    <DataTemplate x:Key="MultiColumnHeaderTemplate">
      <Grid Margin="-4" HorizontalAlignment="Stretch">
        <Grid.RowDefinitions>
          <RowDefinition Height="Auto" />
          <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <Border BorderBrush="Black" BorderThickness="1">
         <TextBlock Text="{Binding}" HorizontalAlignment="Center"/>
        </Border>

        <Border BorderBrush="Blue" BorderThickness="1" Grid.Row="1" >
            <GridViewHeaderRowPresenter                
             HorizontalAlignment="Stretch"            
                Columns="{DynamicResource ColumnCollection}">
           </GridViewHeaderRowPresenter>
        </Border>
      </Grid>
    </DataTemplate>


Ну и сама коллекция столбцов:
Код

    <GridViewColumnCollection x:Key="ColumnCollection">
       <GridViewColumn Header="Зн1" DisplayMemberBinding="{Binding Path=rn}" 
            Width="50"/>
       <GridViewColumn Header="Зн2" DisplayMemberBinding="{Binding Path=name}" 
            Width="50"/>
       <GridViewColumn Header="Зн3" DisplayMemberBinding="{Binding Path=name}" 
            Width="50"/>
    </GridViewColumnCollection>



Проблемма в следующем:
Я уже давно оставил надежду, чтобы у меня ширина столбцов зн1, зн2 и зн3 менялась пропорционально их общему "Набор1" (через Width="*").   smile 
Поэтому запретил изменение столбцов вообще.
Но вон незадача: основные столбцы, как и положено, перестали растягиваться. А столбцы зн1, з2 и зн3 по прежнему тянутся во все стороны.
Как запретить изменение их размера пользователем?
И подскажите еще, как сделать так, чтобы шаблон "набор1" растянулся на весь столбец? Сейчас он растягивается только на суммарную длину трех своих "подстолбцов". А хотелось бы чтобы он растянулся на ширину указанную в поле Width у DataGridTemplateColumn, и все его подстолбики растянулись бы пропорционально.
Либо как вариант: как сделать так, чтобы при увеличении ширины зн2, ширина зн3 пропорционально уменьшалась?

Такое впечатление, что Microsoft бросила этот компонент на середине, либо запрятала все так далеко, что я даже не знаю в какую сторону копать  smile
Проект прилагаю.

Спасибо тем, кто дочитал до конца. Очень рассчитываю на вашу помощь.

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  test_01.rar 28,58 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




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


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

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