2012-05-10 2 views
0

enter image description hereWPF Datagrid Syling

Пожалуйста, дайте мне знать, как я могу удалить вертикальную линию сетки для только последнего столбца.

Благодаря Ди

ответ

0

Я предполагаю, AutoGenerateColumn = True. Если да, то используйте событие AutoGeneratingColumn, которое вызывается, когда столбец генерируется, что означает, что атрибут для добавления в XAML будет AutoGeneratingColumn = DataGrid_AutoGeneratingColumn

И код обработчика будет что-то вроде этого

private void DataGrid_AutoGeneratingColumn(object sender, Microsoft.Windows.Controls.DataGridAutoGeneratingColumnEventArgs e) 
    { 
     if (e.PropertyName == "+") //or whatever it is 
      { 
       e.Cancel = false; 
       e.Column.Visibility = Visibility.Collapsed; 
      } 
    } 

Оценка на основе комментария

Это простой пример. Попробуйте установить стиль ячейки, как так

В XAML добавить

<Style x:Key="noborder" TargetType="{x:Type dg:DataGridCell}"> 
      <Setter Property="BorderThickness" Value="0"/> 
</Style> 

В обработчике событий добавьте

e.Column.CellStyle = this.Resources["noborder"] as Style; 

Вы можете играть с различными свойствами стилей, чтобы получить это право

+0

На самом деле у меня есть AutoGenerateColumn = false. Эта дополнительная колонка, которую я добавил. Я попытался дать ту же видимость. Завершился последний столбец, и он скрывает целую колонку. Я все еще хочу добавить + кнопку для добавления столбца. –

+0

Тогда я попробую установить cellstyle. Будет обновлен ответ с подробностями. – Sharun

+0

Спасибо, что помогли мне. –

0

отметить последний ширина колонки со звездой

<DataGridTextColumn .... Width="*" 

таким образом ваш текущий последний столбец (наполнитель) не появится, скорее ваш последний последний столбец, который вы объявили в вашем файле XAML, будет растянут до конца видимой области в сетке.