2011-06-15 45 views
9

Tôi đang sử dụng điều khiển DataGrid WPF trong .NET 4 có DataGridTextColumn.Đầu vào nhiều dòng dữ liệu WPF DataGridTextColumn

Tôi muốn có thể nhập văn bản nhiều dòng. Các ngắt dòng được định dạng chính xác khi tôi liên kết dữ liệu với cột, nhưng tôi không tìm thấy cách nào để tạo ngắt dòng khi chỉnh sửa văn bản.

<DataGrid ItemsSource="{Binding MyMessages}"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="Message" Binding="{Binding Path=Message}" Width="Auto"/> 
    <DataGrid.Columns> 
</DataGrid> 

Mọi đề xuất?

Trả lời

24

Hãy thử:

<DataGridTextColumn Header="Message" Binding="{Binding Path=Message}" Width="Auto"> 
     <DataGridTextColumn.ElementStyle> 
      <Style TargetType="TextBlock"> 
       <Setter Property="TextWrapping" Value="Wrap" /> 
      </Style> 
     </DataGridTextColumn.ElementStyle> 
     <DataGridTextColumn.EditingElementStyle> 
      <Style TargetType="TextBox"> 
       <Setter Property="TextWrapping" Value="Wrap" /> 
       <Setter Property="AcceptsReturn" Value="true" /> 
      </Style> 
     </DataGridTextColumn.EditingElementStyle> 
    </DataGridTextColumn> 
+0

Làm việc như một nét duyên dáng :-) – Freddy

+0

Lưu ý: Trong trường hợp của tôi điều này đã hiệu quả, nhưng chỉ khi tôi đặt DataGrid.HorizontalScollBarVisibility = "Disabled" cho mỗi http://social.msdn.microsoft.com/Forums/en- US/wpf/thread/e1b33317-e9ef-4b03-b173-c00aa22fb78d/Khi tôi đã làm điều đó các hàng của tôi bắt đầu thay đổi kích thước đẹp. –

+0

Có ai đã giải quyết cú pháp của việc này trong một tài nguyên phong cách riêng biệt? Tôi đang gặp vấn đề này ngay bây giờ và không thể cho cuộc sống của tôi tìm một tài nguyên phong cách làm việc để thực hiện công việc này! –

0

xmlns:wtk="clr-namespace:Xceed.Wpf.Toolkit;assembly=Xceed.Wpf.Toolkit" 
 

 
<DataTemplate x:Key="dataGridMultiLineTextBoxTemplateColumn" DataType="your data type"> 
 
     <wtk:MultiLineTextEditor 
 
      x:Name="MultiLineTextBox" 
 
      Width="300" 
 
      Margin="2" 
 
      Padding="5,0,0,0" 
 
      FontSize="12" 
 
      FontWeight="Normal" 
 
      Foreground="Black" 
 
      IsSpellCheckEnabled="True" 
 
      Text="{Binding your binding property, Mode=TwoWay, NotifyOnTargetUpdated=True, NotifyOnSourceUpdated=True, UpdateSourceTrigger=PropertyChanged}" 
 
      TextWrapping="Wrap" /> 
 
    </DataTemplate>

Extended WPF Toolkit MultiLineTextEditor sẽ cung cấp những gì bạn cần. Extended WPF Toolkit MultiLineTextEditor

+0

Bạn có thể mở rộng trên đó không? – wogsland

+1

Đã cập nhật câu trả lời. – Yaz

Các vấn đề liên quan