Хорошо, так что это будет трудно объяснить.WPF DataGrid добавляет строки, но не данные (пустые строки)
Сценарий:
У меня есть DataGrid определяется следующим образом:
<DataGrid Height="100" Name="test" IsReadOnly="False">
<DataGrid.Columns>
<DataGridTextColumn Header="URL"></DataGridTextColumn>
<DataGridTextColumn Header="PORT"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
Он имеет два заголовка, и мне нужно, чтобы добавить данные, я сделал много исследование, которое предполагает использование ObservableCollection, поскольку это приведет к срабатыванию события DataChanged.
Я могу сформулировать эти данные с длинным скучным кодом, который, вероятно, не имеет значения (вы увидите, почему ниже).
Проблема:
В 200 строк добавлены, но сам текст не в таблице
Устранение:
Я включил отладку и скриншоты помогают, вы можете видеть, что есть фактические данные, но он не будет вставлять их в строки, но он добавляет строки.
Соответствующий код:
ObservableCollection<Proxy> collection = new ObservableCollection<Proxy>();
collection = GetData(ips,ports);
test.CanUserAddRows = true;
test.ItemsSource = null;
test.ItemsSource = collection;
MessageBox.Show("Done");
Я стучал головой о стену, пытаясь понять это.
ПРИМЕЧАНИЕ: Я добавил .ItemSource = null; а затем установите его равным коллекции, так как это позволило показать строки. Я пробовал использовать предложенную: test.DataContext = collection; Но никакие строки не добавляются вообще, и да, как и этот тест, данные видны в режиме отладки как часть контекста/itemsource.
UPDATE:
Я попытался реализации следующий XAML с теми же результатами
<DataGrid Height="100" Name="test" IsReadOnly="False" ItemsSource="{Binding collection}">
<DataGrid.Columns>
<DataGridTextColumn Header="URL" Binding="{Binding ip}"></DataGridTextColumn>
<DataGridTextColumn Header="PORT" Binding="{Binding port}"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
Proxy Класс:
public class Proxy
{
public string ip;
public string port;
}
UPDATE 2: При добавлении Досталось и были установлены следующие результаты:
Где вы говорите, ваше приложение что же писать в столбцах? Вы просто установите itemssource (что вы должны делать в xaml, если вы спросите меня) – user3596113
Привет, вы можете объяснить немного больше, пожалуйста? Вы хотите создать DataBindings в XAML? – Kyle
У вас нет привязки в вашей DataGridTextColumn и, следовательно, они не показывают никаких данных. –