Я отображаю DataGrid, который привязан к DataTable:
Моя проблема в том, что для значения первого столбца каждой строки текст обрезается.
Я не уверенесли это потому, что ширина столбца слишком мала (кажется, что это не так) или по какой-то другой причине.
Сначала я хотел бы знать, почему это происходит?
Во-вторых,есть ли способ динамически установить ширину каждого столбца из кода?
Как видите, «Альфред Хичкок» отображается как «Альфред Хичко»
Вот xaml:
<DataGrid x:Name="_dataGrid"
IsHitTestVisible="False"
Background="Transparent"
Margin="20"
CanUserAddRows="False"
CanUserDeleteRows="False"
IsReadOnly="True"
ItemsSource="{Binding StatisticsDataTableView}"
HorizontalContentAlignment="Left" VerticalContentAlignment="Bottom" HorizontalAlignment="Center" VerticalAlignment="Center">
Вот свойство:
public DataView StatisticsDataTableView
{
get { return _statisticsDataTableView; }
set
{
_statisticsDataTableView = value;
OnPropertyChanged();
}
}
И в коде я создаю таблицу динамически так:
_dataTable = new DataTable();
var column = _dataTable.Columns.Add("Sprints:");
foreach (var sprint in Plan.Sprints)
{
_dataTable.Columns.Add(sprint.SprintNumber.ToString());
}
List<string> sinsglePerformers = new List<string>();
foreach (var performer in _settings.Performers)
{
if (performer.Name == "All" || performer.Name == "Unassigned" || !performer.IsEnabled)
{
continue;
}
var splitedPerformers = performer.Name.Split(',');
for (int i = 0; i < splitedPerformers.Length; i++)
{
if (!sinsglePerformers.Contains(splitedPerformers[i]))
{
sinsglePerformers.Add(splitedPerformers[i]);
}
}
}
foreach (var performer in sinsglePerformers)
{
var newRow = _dataTable.NewRow();
_dataTable.Rows.Add(newRow);
newRow[0] = performer;
int sprintIndex = 1;
foreach (var jaraSprint in Plan.Sprints)
{
var tasks = jaraSprint.Tasks.Where(t => t.Performers.Any(p => p.Name == performer));
double days = tasks.Sum(jaraTask => jaraTask.TimeInDays);
newRow[sprintIndex] = $"{days*100/(_plan.WeeksInSprint*5):0.}" + "%";
sprintIndex++;
}
}
StatisticsDataTableView = _dataTable.AsDataView();
Любая идея?