私の WPF アプリケーションでは、動的な列数でデータグリッドを生成します。コードの一部:
for (var i = datetime; i < datetime.AddDays(1); i+= TimeSpan.FromHours(1)){
var column = new DataGridTemplateColumn();
column.Header = (i+1).ToString();
column.CellTemplate = (DataTemplate)XamlReader.Load(
new MemoryStream(Encoding.Default.GetBytes(
@"<DataTemplate xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'><TextBlock Text='{Binding Values[" + i + @"]." + propName + @"}'/></DataTemplate>"
)));
column.CellEditingTemplate = (DataTemplate)XamlReader.Load(
new MemoryStream(Encoding.Default.GetBytes(
@"<DataTemplate xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'><TextBox Text='{Binding Values[" + i + @"]." + propName + @", Mode=TwoWay}'/></DataTemplate>"
)));
dataGrid1.Columns.Add(column);
}
dataGrid1.ItemsSource = data;
<DataGrid EnableColumnVirtualization="true" EnableRowVirtualization="true" Name="dataGrid1" DockPanel.Dock="Top" AutoGenerateColumns="False"
Height="120" Width="Auto" />
テーブルに 25 列と 10 行が含まれている場合、レンダリングが遅すぎます (1 秒)。データバインディングのパフォーマンスを改善するにはどうすればよいですか?