2014-02-13 5 views
0

Я заметил, что столбцы DataGrid в моем проекте больше не расширяются до ширины DataGrid. Единственное, что я сделал, это изменить имя Assmbly. В дизайне XAML они растянуты.Колонки DataGrid больше не растягиваются

Collapsed DataGrid Columns

<DataGrid x:Name="dg" Grid.Row="4" RowHeaderWidth="0" AutoGenerateColumns="False" 
    HorizontalGridLinesBrush="AliceBlue" AlternationCount="2">     

       <DataGrid.Columns> 
        <DataGridTemplateColumn Header="File" IsReadOnly="True" Width="*" CanUserSort="True" SortMemberPath="File" > 
         <DataGridTemplateColumn.CellTemplate> 
          <DataTemplate> 
           <TextBlock Text="{Binding Path=FileName}" MouseDown="FileName_MouseDown" /> 
          </DataTemplate> 
         </DataGridTemplateColumn.CellTemplate> 
        </DataGridTemplateColumn> 

//other columns are similar 

       </DataGrid.Columns>     
      </DataGrid> 

То, что я пробовал:

  1. Перестроить решение

  2. Удалить "БИН" папку и восстановить

  3. Я использовал старую версию, которая была OK , и изменил название Ассамблеи (которая была только разница между резервными копиями), и я сравнивал все файлы между этими двумя версиями (в codecompare и notepad ++, один за другим), и все файлы были одинаковыми, но один растягивался, а другой - нет. Обе версии тоже старые, поэтому я не могу вернуться.

  4. Создать новую DataGrid только с ColumnWidth = "*" AutoGenerateColumns = "True"

  5. HorizontalContentAlignment = "Stretch" и HorizontalAlignment = "Stretch"

Я бежал из идей. Пожалуйста, предложите любую идею, будь то глупо. Благодаря!

+0

Ваш образец кода работает. Ты уверен? осмотрите контейнер вашего DataGrid. – codeSetter

+0

Установите ширину в Auto вместо * –

+0

@NETscape Даже с DataGrid ColumnWidth = "*" - это то же самое. DataGridTemplateColumn переопределяет его шириной. Я попытался добавить элементы и все тот же. – Daniel

ответ

0

Я решил это:

Единственным отличием было то, что я имел на хорошей версии MyWindow.Show(); после инициализации. Я несколько раз прокомментировал и раскомментировал эту строку, и это было исправление.

MyWindow - это просто имя окна, определенного в xaml, и show() ничего не делает, поскольку окно видимо в любом случае.

Если у кого-либо еще есть эта проблема, просто добавьте WindowName.Show() после InitializeComponent();

Я произношу эту ошибку, если кто-то из вас не может придумать причину.

+0

@NETscape. Он находится в сетке, которая находится в другой сетке. – Daniel

Смежные вопросы